你好
通常所有的方法都像
'-((NSFetchedResultsController *)fetchedResultsController'
被放置在视图控制器的代码中。我发现编写数据获取代码以及生命周期方法或表委托方法有点混乱。
所以我的意思是我应该将CoreData方法重构为其他帮助类,例如DataLoader,然后在视图控制器中调用它们吗?
这是做错事还是我要放弃Core Data方法的一些编码优势。
最佳答案
我会说将fetchedResultsController移到助手类是一个好主意。
我经常遇到的问题是正确拼写属性。
例如,我做一个谓词,并想过滤名为@"isSelected"
的属性。编译器和链接器都不会检查字符串isSelected
。我将不得不仔细检查使用该字符串的每一行。
搜索和替换无法解决拼写错误,因为我不知道引入了哪些错误。
当我得到错误的谓词时,将不会获取任何结果。问题是我不知道是否没有匹配的行,或者我过滤错误。我将需要在运行时检查,这会浪费时间。
对于谓词,保存的模板存在,因此谓词不是一个完美的示例。但是考虑value forKey:
,我们处于第一个平方。
现在,如果所有fetchedResultsController都在一个文件中,则检查将变得更加容易。至少,它减少了在遥远且很少使用的类中丢失少量拼写错误的可能性。
...或者我要放弃Core Data方法的一些编码优势。
我倾向于拒绝,但其他人请随意加入。
关于iphone - 核心数据重构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4790859/