【发布时间】:2013-11-29 14:59:55
【问题描述】:
我是 Objective-C 和 Core Data 的新手。作为学习的一部分,我正在做一个小项目。我使用Product、OrderItem、Sales 和Supplier 等实体创建了Core Data。
属性:
产品:产品 ID、供应商 ID、产品名称、类别、子类别、数量、价格、最小库存、频率。 订单:订单 ID,订单日期。 OrderItem : 订单 ID、产品 ID、数量、价格、总计、订单日期。我在Product 和OrderItem 之间创建了关系,其中OrderItem 与Product 反向。
从 OrderItem 到产品:
关系目的地逆 产品 产品订单项目我的主要问题是如何通过以下方式加入产品来显示 OrderItem 中的已订购商品: Product-id、ProductName、OrderDate、OrderId、Qty、Price、Total ?
如果是正常的 sql,要实现上述目标,我可以像“从 OrderItem o 中选择产品 ID、产品名称、订单 ID、订单日期、数量、价格、总计、产品 p,其中 o.product-id=p.product -id"
我可以尝试使用使用核心数据从 OrderItem 获取的相同方法:
-(NSMutableArray *)loadData{
// Fetch the OrderItems from OrderItem model through from persistent data store
NSManagedObjectContext *managedObjectContext = [self context];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"OrderItem"];
//How do i do to get productName from Product
//the relationship is based on "product" from OrderItem to Product
//I need to get productName and add to array list below to display on the screen.
NSMutableArray *orderList =[[NSMutableArray alloc]init];
orderList =[[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
return orderList;
}
我没有从一个实体显示任何问题,但我的问题来自多个实体?
任何帮助或建议将不胜感激?
我试图在下面的代码中同时添加 Product 和 OrderItems,但出现错误“orders.orderToProd = [NSSet setWithObject: entDesc.prodToOrder];”这是正确的方法吗?
- (IBAction)cmdAdd:(id)sender { NSManagedObjectContext *context =[self managedObjectContext]; 产品 *entDesc =[NSEntityDescription insertNewObjectForEntityForName:@"Product" inManagedObjectContext:context]; //设置产品详情 entDesc.productName = self.txtName.text; entDesc.category = self.txtCategory.text; entDesc.qty=[NSNumber numberWithInteger:[self.txtQty.text integerValue]]; //在此处添加 OrderItems 详细信息 OrderItems *orders=[NSEntityDescription insertNewObjectForEntityForName:@"OrderItems" inManagedObjectContext:context]; orders.price=[NSNumber numberWithInteger:[self.txtprice.text integerValue]]; orders.orderQty=[NSNumber numberWithInteger:[self.txtOrderQty.text integerValue]]; orders.total=[NSNumber numberWithInteger:[self.txtTotal.text integerValue]]; //orderToProd 是 orderItem 到 Product 的关系对象,prodToOrder 是 Product 到 OrderItem 的关系 //我收到这条线的错误。我认为它期望基于数组或逗号的项目 //请帮忙 orders.orderToProd = [NSSet setWithObject: entDesc.prodToOrder]; NSError *error = nil; // 将对象保存到持久存储 if (![context save:&error]) { NSLog(@"无法保存!%@ %@", error, [错误localizedDescription]); } }【问题讨论】:
标签: objective-c core-data