- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 CoreData 应用程序,可以从 *.xml 文件导入信息。该文件有两个部分:摘要和详细信息。
本质上,我有两个 TableView ,tvSummary 和 tvDetail;两个数组 Controller ,acSummary 和 acDetail;和一个可变数组 maDetail。
导入文件时,我使用 [acSummary addObject:newSummaryData];
方法将摘要数据记录添加到 acSummary 数组 Controller 。文件导入后,摘要数据字段将填充 tvSummary TableView 。
当我使用 [acDetail addObject:newDetailData];
方法将详细数据记录添加到 acDetail 数组 Controller 时,可能需要二十分钟以上才能导入最多 72000 条记录(大多数文件包含3600 和 21600 条记录)。一旦这个漫长的过程完成,导入的详细数据字段就会填充 tvDetail TableView 。当我在 tvSummary TableView 中进行选择时,tvDetail TableView 中显示的数据会发生更改以匹配所选行。我认为这就是它应该如何工作的。
在 Cocoa/Objective-c/Core Data 学习过程中(我还是个新手),我发现我可以在大约五秒内将 72000 条记录复制到 maDetail 可变数组中。我还发现我可以使用 [acDetail setContent:maDetail];
方法在大约两秒内将 maDetail 可变数组的内容复制到 acDetail 数组 Controller 。
我不明白的是如何让 acDetail 数组 Controller 记住当我在 tvSummary TableView 中选择不同的行时给出的内容。我看到有关强制数组 Controller “保存”的引用资料,但是,我找不到任何有关如何实现此类方法的文档。任何建议或指导将不胜感激。
最佳答案
正如该类的文档告诉我们的那样,NSArrayController 是“管理对象集合的绑定(bind)兼容类”。 Cocoa 绑定(bind)就像一个自动 Controller ,它在模型和 View 对象之间同步数据 - 每次修改绑定(bind)属性时,绑定(bind)到该属性的所有对象都会收到通知,并根据需要进行 self 更新。
如果您通过 NSArrayController 一次向可变数组添加 72,000 个对象,则很可能会发送大量不必要的通知,并且正在执行大量无用的更新。有多种方法可以解决这个问题,但我建议先尝试最简单的方法......
不要单独添加每条记录,而是将所有记录添加到单独的可变数组中。完成后,使用 NSArrayController 的 -addObjects:
方法将所有对象一次性添加到托管数组中。这应该通知观察者数组已更改一次而不是每个对象更改一次,并且我认为您会看到性能的显着提高。
我会解决您对储蓄的担忧,但我真的不明白您想做什么。也许您可以告诉我们更多信息,并将其重述为一个实际问题。
关于objective-c - CoreData NSArrayController addObject : Agonizingly Slow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542888/
我有一个 CoreData 应用程序,可以从 *.xml 文件导入信息。该文件有两个部分:摘要和详细信息。 本质上,我有两个 TableView ,tvSummary 和 tvDetail;两个数组
我在 agon-ratings 中出现 403 FORBIDDEN 错误提交评分时的插件。我已阅读doc 。但头中存在 csrf token : Request Headersview source
我目前正在使用 Google 游戏服务器 (https://cloud.google.com/game-servers) 托管游戏服务。这基本上是在 GKE 中运行 Agones。除了 iPv6 之外
我是一名优秀的程序员,十分优秀!