目录
Maxime Ollivier

fix crash when calling reloadObjects during an update

Summary: Follow up to D47263265

What’s happening

We’re calling listAdapter.reloadObjects(...) in the middle of the IGListKit’s internal data update, so it’s using the new section index path, instead of the old one. So we’re going from a list of 2, insert at 0, and try to reload index 1, then we crash (it’ll try to update index 2, which doesn’t exist in the old array)

Fix

Just like for [IGListAdapter performBatchAnimated:updates:completion:], lets use the old index. To get this working, lets ask the updater if we’re in an update, rather than IGListAdapter try to keep track of it.

Sorry the diff is a bit long, but in case this feels reasonable to pick, I might

Differential Revision: D47281472

fbshipit-source-id: 193153cfc15c87084b67f58c50e921db459d6800

1年前778次提交

Build Status Coverage Status Pods Version Platforms Carthage Compatible


一个数据驱动的UICollectionView框架,用于构建快速灵活的列表。

主要特性
🙅 无须直接调用 performBatchUpdates(_:, completion:)reloadData()
🏠 更好的可复用 cell 和组件体系结构
🔠 创建具有多个数据类型的列表
🔑 解耦的 Diff 算法
完全的单元测试
🔍 可自定义数据模型的 Diff 行为
📱 简化并维持UICollectionView的核心特性
🚀 可扩展的 API 设计
🐦 Objective-C 编写,同时完全支持 Swift

IGListKitInstagram 工程师 创建 并且❤️ 维护。 我们在 Instagram 中使用开源的main主版本。

多语言翻译

英文README

要求

  • Xcode 11.0+
  • iOS 11.0+
  • tvOS 11.0+
  • macOS 10.13+ (diffing algorithm components only)
  • Interoperability with Swift 3.0+

安装

CocoaPods

推荐使用CocoaPods来进行安装,只需添加如下语句到你的Podfile文件中:

pod 'IGListKit', '~> 4.0.0'

Carthage

对于Carthage, 添加如下到Cartfile文件中:

github "Instagram/IGListKit" ~> 3.0

对于高级用法, 查阅 安装指南

入门指南

$ git clone https://github.com/Instagram/IGListKit.git
$ cd IGListKit/
$ ./scripts/setup.sh

文档

这里可以查阅文档。文档由jazzy生成,托管在 GitHub-Pages

运行位于仓库根目录下的./scripts/build_docs.sh脚本来生成文档。

远景

想要了解IGListKit的长期目标和愿景,请阅读Vision

贡献

请查看CONTRIBUTING来了解如何参与贡献。在 Instagram,我们每日都会同步开源版本的IGListKit,因此我们总是在测试最新的改动。但是这也需要所有的改动都需要经历完全的测试,并且遵守我们的开发风格。

我们有一系列新人任务,来帮助新人学习如何参入其中。

License

IGListKit 遵循MIT-licensed

/Examples/目录下的文件,在文档里指明了它们各自所遵循的协议。文档遵循CC-BY-4.0

    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号