Ios 带有AFNetworking和MagicalRecord的NSFetchedResultsController
我应该何时使用AFNetworking初始化NSFetchedResultsController?目前我正在做这件事:Ios 带有AFNetworking和MagicalRecord的NSFetchedResultsController,ios,core-data,afnetworking,magicalrecord,Ios,Core Data,Afnetworking,Magicalrecord,我应该何时使用AFNetworking初始化NSFetchedResultsController?目前我正在做这件事: [[AFHttpClient sharedClient] GET:@"/admin/stockCategories" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { NSHTTPURLResponse *response = (NSHTTPURLResponse *)ta
[[AFHttpClient sharedClient] GET:@"/admin/stockCategories" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
if (response.statusCode == 200) {
NSArray *results = (NSArray *)responseObject;
if ([results count] > 0) {
for (NSDictionary *obj in results) {
StockCategory *category = [StockCategory MR_createEntity];
category.name = obj[@"name"];
category.categoryId = obj[@"_id"];
category.createdDate = [NSDate dateForRFC3339DateTimeString:obj[@"createdDate"]];
[context MR_saveWithOptions:MRSaveParentContexts completion:^(BOOL success, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[SVProgressHUD dismiss];
[self.tableView reloadData];
});
}];
}
} else {
}
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
}];
我知道在我将对象保存到核心数据后,通常会将执行获取请求放入成功块。我是否应该这样做:
[context MR_saveWithOptions:MRSaveParentContexts completion:^(BOOL success, NSError *error) {
// add NSFetchedResultsController here ?
self.fetchedResultsController = [StockCategory MR_fetchAllSortedBy:@"createdDate" ascending:NO withPredicate:nil groupBy:nil delegate:self];
dispatch_async(dispatch_get_main_queue(), ^{
[SVProgressHUD dismiss];
[self.tableView reloadData];
});
}];
如果是,self.fetchedResultsController将多次初始化。我不这么认为。我目前正在做的是:
- (NSFetchedResultsController *)fetchedResultsController{
if (!_fetchedResultsController) {
_fetchedResultsController = [StockCategory MR_fetchAllSortedBy:@"createdDate" ascending:NO withPredicate:nil groupBy:nil delegate:self];
}
return _fetchedResultsController;
}
但在我的UITableViewDatasource方法中,只有numberOfRows方法有效,但cell.textLabel.text为空。但是如果我重新启动模拟器,并评论AFGET方法。一切正常,对象已保存在核心数据中,NSFetchedResultsController也正常工作 我不确定问题是什么…@casademora你可以看到我在一个for循环中保存,保存后就完成了。表视图重新加载数据,其数据源来自“获取结果”控制器。我的问题是,在对象保存到核心数据的过程中,我应该在何处初始化这个获取的结果控制器。