Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 增量核心数据属性_Ios_Objective C_Core Data - Fatal编程技术网

Ios 增量核心数据属性

Ios 增量核心数据属性,ios,objective-c,core-data,Ios,Objective C,Core Data,我的应用程序中存在以下关系: Product->ProductOrder您的代码有许多问题 首先,您需要不同的托管对象上下文是否有特定的原因?如果没有,则删除该部分。请记住,您可以使用访问每个托管对象的上下文 product.managedObjectContext; 第二,您正在使用objectid,这实际上只有在跨上下文传递对象时才有必要。在您的方法中,您可以从product中提取ID,然后调用objectWithID将其取回。这完全没有道理 第三,您需要一个很好的理由来拥有这个Produ

我的应用程序中存在以下关系:


Product->ProductOrder您的代码有许多问题

首先,您需要不同的托管对象上下文是否有特定的原因?如果没有,则删除该部分。请记住,您可以使用访问每个托管对象的上下文

product.managedObjectContext;
第二,您正在使用objectid,这实际上只有在跨上下文传递对象时才有必要。在您的方法中,您可以从
product
中提取ID,然后调用
objectWithID
将其取回。这完全没有道理

第三,您需要一个很好的理由来拥有这个
ProductOrder
实体。即使您没有告诉我们,我们也假设这是必要的,因为您希望在订单中包括不同数量的产品,以及订单号。但是,您选择的名称非常混乱。我们称之为

您的方案现在应该如下所示:

Product <---->> Item <<------> Order

非常感谢,如果我使用FRC,代码会有所不同吗?:)
   for (Product *prod in [self.fetchedResultsController fetchedObjects]) {

                [[[DataManager sharedInstance] backgroundManagedObjectContext] performBlock:^{

                    ProductOrder *prodOrder = [ProductOrder addProductToOrderWithProduct:prod inManagedObjectContext:[[DataManager sharedInstance] backgroundManagedObjectContext]];

                    Order *order = [Order addOrderedProductToOrderWithOrderedProduct:prodOrder inManagedObjectContext:[[DataManager sharedInstance] backgroundManagedObjectContext]];

                    NSInteger amount = [order.orderNumber integerValue];

                    amount++;

                    order.orderNumber =  [NSString stringWithFormat:@"Order %@", [NSNumber numberWithInteger:amount]];

                    [[DataManager sharedInstance] saveBackgroundContext];
                    [[DataManager sharedInstance] saveMasterContext];

                }];

}
product.managedObjectContext;
Product <---->> Item <<------> Order
// number of sections
fetchedObjects.count;

// title for section
Order *order = fetchedObjects[section];
order.name;

// number of rows in section
Order *order = fetchedObjects[section];
order.items.count;

// row data
Order *order = fetchedObjects[section];
NSArray *items = [order.items sortedArrayUsingSortDescriptors:
  @[[NSSortDescriptor sortDescriptorWithKey:@"sequenceNumber" ascending:YES]]];
Item *item = items[indexPath.row];
item.product.name;