Core data 更新NSManagedObject不';t使用MagicalRecord调用NSFetchedResultsControllerDelegate
我有一个一对多关系的模型:Core data 更新NSManagedObject不';t使用MagicalRecord调用NSFetchedResultsControllerDelegate,core-data,magicalrecord,nsfetchedresultscontroller,Core Data,Magicalrecord,Nsfetchedresultscontroller,我有一个一对多关系的模型: Order -->> LineItem 我在UITableViewCells中显示行项目: 我使用UIPickerView更改行项目的数量 GOAL=>通过更改选择器值,可以再次重新计算小计 这里的问题是更新行项目,NSFetchedResultsController委托不调用(在这里我可以重新配置单元格并显示更新的数据)。但当我更新订单时,例如将其设置为completedNSFetchedResultsController将调用委托方法 为什么更新
Order -->> LineItem
我在UITableViewCells中显示行项目:
我使用UIPickerView更改行项目的数量
GOAL=>通过更改选择器值,可以再次重新计算小计
这里的问题是更新行项目,NSFetchedResultsController委托
不调用(在这里我可以重新配置单元格并显示更新的数据)。但当我更新订单时,例如将其设置为completedNSFetchedResultsController
将调用委托方法
为什么更新lineItem不会影响要调用的委托方法
我使用magicalRecord,下面是如何获取NSFetchedResultsController的
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
else
{
_fetchedResultsController = [Order fetchAllSortedBy:@"orderDate" ascending:YES withPredicate:nil groupBy:nil delegate:self];
}
return _fetchedResultsController;
}
设置表视图的方式:
ConfigureCellBlock configureCell = ^(OrderDetailsCell *cell, LineItem *lineItem)
{
[cell configureForLineItem:lineItem];
};
//set fetchedresults controller delegate
Order *order = [[self.fetchedResultsController fetchedObjects] lastObject];
NSArray *lineItems = [order.lineItems allObjects];
self.ordersDataSource = [[ArrayDataSource alloc] initWithItems:lineItems cellIdentifier:@"lineItemCell" configureCellBlock:configureCell];
self.tableView.dataSource = self.ordersDataSource;
配置单元:
- (void)configureForLineItem:(LineItem *)lineItem
{
self.menuItemName.text = lineItem.menuItemName;
self.price.text = [lineItem.unitPrice stringValue];
self.quantity.text = [lineItem.quantity stringValue];
self.totalPrice.text = [lineItem.totalPrice stringValue];
self.pickerController.model = lineItem;
self.picker.delegate = self.pickerController;
self.picker.dataSource = self.pickerController;
[self.picker setSelectedNumber:lineItem.quantity];
}
获取obj1然后更新obj3是否会导致调用NSFRC委托方法
FRC将只观察其直接感兴趣的对象的变化,而不观察与之相关的任何对象的变化
您应该直接使用KVO或将自己的观察配置到正在保存的上下文,并使用它来触发UI刷新。是的,我提取了行项目并为它们设置FRC委托,而不是提取顺序。谢谢