【发布时间】:2010-06-25 08:05:11
【问题描述】:
以前,在带有 XCode 3.2.2 的 iPhone OS 3.2 上,这曾经可以正常工作。
我创建了一个小测试来证明这一点。一个具有 2 个属性的 NSManagedObject,“group”和“vaue”。两个字符串。
在设置要在 TableViewController 中使用的 NSFetchedResultsController 时,我在请求中设置了 setFetchLimit,并将 sectionNameKeyPath 设置为“组”,因为我希望将结果实体分组到部分中。
前一种行为(iPhone OS 4 和 XCode 3.2.3 之前的版本)将返回包含限制中指定的最大实体数量的实体的结果集。
使用新的 OS 和 XCode,每个部分中的 FecthedResultsController“sections”和 numberOfObjects 返回持久存储中的所有值,忽略设置的 Limit。
但是当委托方法尝试访问数据时,它并不存在,它会生成一个 [_PFBatchFaultingArray objectAtIndex:]: index (X) beyond bounds (X)',是我设置的限制X,导致应用崩溃。
在我看来,SDK 中在使用自 3.2.3/OS 4 以来引入的限制和部分时存在错误。
问题的一个例子:
在数据存储组“A”中包含“3”个项目,组“B”包含“2”个项目和组“C”包含“2”个项目(即项目总数 7),以及限制设置为 7,将返回所有部分。如果限制设置为小于 7,应用程序将崩溃。
还有其他人遇到这个问题吗?
【问题讨论】:
-
Apple 已知此问题。我报告了一个错误,他们正在处理它。
标签: iphone crash iphone-sdk-3.2 ios4