我遇到了尝试使用没有相应的UITableViewController的NSFetchedResultsController的问题。使用没有UITableViewController的NSFetchedResultsController
根据苹果documentation:
“ NSFetchedResultsController旨在有效地管理从一个核心数据返回的结果取请求为一个UITableView对象提供数据”
因此,我首先研究了如果不使用UITableViewController而使用NSFetchedResultsController是否可取,并且遇到this Stackoverflow post,那么得出的结论是,至少在某些情况下,这不是一个坏主意。
但现在我遇到了一个问题,当相应的UITableViewController不存在时,NSFetchedResultsController的行为会有所不同。问题是当UITableViewController不存在时,由NSFetchedResultsController返回的对象没有IndexPath。我在stackoverflow post中记录了这个问题。 (请注意,这是问题的简化,在某些情况下,对象确实有IndexPaths,但我已经遇到了很多的问题相信期待 IndexPaths没有一个UITableViewController是一个坏主意。)
没有IndexPaths,我无法按排序顺序访问返回的对象,并且我无法访问特定的对象。所以我在寻找的是一种让NSFetchedResults控制器返回带有IndexPath的对象的方法,或者一种访问对象的替代方法。 (或者我可能根本不应该使用NSFetchedResultsController?)
Re替代方法,一个解决方法是将fetchedObjects传递给数组,然后使用该数组。但根据我的经验,创建FRC对象的新指针始终会导致问题。我想每次我试图用我自己的指针保留一个NSManagedObject时,它最终导致了一个错误。
仅供参考,我正在尝试创建的导航栏与照片中的导航栏类似。如果您想象出您可以动态地将照片添加到Photos应用程序,那么对于栏中照片由NSFetchedResultsController进行管理是有意义的 - 这样添加新照片就会动态地添加到条的末尾,非常类似于如何将一个新对象动态添加到UITableView中。
感谢您能帮助我的任何想法!
UPDATE这个问题(暂定)通过求解 - [NSFetchedResultsController fetchedObjects] objectAtIndex:]
This [stackoverflow post of mine](http://stackoverflow.com/questions/2375551/nsmanagedobjects-that-i-own-being-released-by-main-m)是关于一个问题,其中的对象会得到自发释放(运行5分钟左右后)。但是我遇到了类似的问题,在NSManagedObject处指向一个保留的指针,当它稍后需要时它不会在那里。 虽然我很困惑,但是“使用 - [NSFetchedResultsController fetchedObjects]” - 听起来像你建议直接使用它,但是你建议新的指针,这意味着间接与它们合作? – robenk 2010-07-18 23:11:51
我可能会得到你所说的,你可以进行读取,将结果放入一个数组中,与数组一起工作然后释放它(即不保留任何东西,我的经验使我认为它可以正常工作)。但是,你会不断地进行提取和创建阵列到处都是不正确的地方。让我知道如果我错过了你的意思。 – robenk 2010-07-18 23:15:36
哦废话,“ - [NSFetchedResultsController fetchedObjects] objectAtIndex:”如果这样的作品,我会觉得愚蠢 – robenk 2010-07-18 23:20:31