G'day 全部
我正在开发一个 CoreData 驱动的应用程序,该应用程序从我从StackMob应用程序填充的空 CoreData 存储开始。
我有一个 UITableView 的子类,它可以按我的意愿获取和呈现我的数据,但我有点困惑什么时候最好从 StackMob 获取初始数据。当我在 applicationDidFinishLaunching 中触发填充我的 CoreData 存储(从一个小的 plist 文件并且仅用于测试视图)时,我的应用程序花了很长时间显示默认屏幕,我希望从网络获取的真实数据会更长。我正在考虑在我的 UITableView 子类上更改此方法...
- (NSFetchedResultsController *)frc
{
if (_frc) return _frc;
...
return _frc;
}
至...
- (NSFetchedResultsController *)frc
{
if (_frc) return _frc;
...
if ([[_frc fetchedObjects] count] == 0) {
// Spawn NSOperation to get initial data from StackMob.
// & use it to populate my CoreData store.
}
return _frc;
}
在这种情况下,我会将 NSOperation 设为一个子类,我可以将其重新用于后续数据更新。我正在检查,[[_frc fetchedObjects] count] == 0
因为我正在从实体中获取所有数据。
是一个好的方法吗?如果不是什么是更好的方法?
我希望提供一种用户体验,就像我在我使用的某些应用程序中看到的那样,当项目被下载并添加到 CoreData 商店时,项目出现在“主”屏幕上。
干杯和 TIA,佩德罗 :)