【发布时间】:2013-12-08 02:20:03
【问题描述】:
我在显示来自我的实体 Product 和 OrderItems 的记录时遇到很大问题。这是一对多的关系。
我向 Product 实体添加记录没有任何问题,并在以下函数中执行 OrderItem 条目:
- (IBAction)cmdSave:(id)sender { self.product.productName = self.txtProductName.text; NSManagedObjectContext *context =[self managedObjectContext]; 订单项 *oi= [NSEntityDescription insertNewObjectForEntityForName:@"OrderItems" inManagedObjectContext:context]; [oi setValue:[NSNumber numberWithInteger:[self.txtQty.text integerValue]] forKey:@"ordQty"]; [oi setValue:[NSNumber numberWithInteger:[self.txtPrice.text integerValue]] forKey:@"price"]; [oi setValue:[NSNumber numberWithInteger:[self.txtTotal.text integerValue]] forKey:@"total"]; [oi setOrders:self.product]; NSError *error = nil; if (![context save:&error]) { NSLog(@"未解决的错误 %@, %@", error, [error userInfo]); 中止(); } [self.navigationController popViewControllerAnimated:YES]; }这似乎没问题,我最大的问题是显示每个产品的所有订单项目。 Product ====> OrderItems 的关系是:产品,反之是订单。 OrderItems ===>产品是:订单,反之是产品。
我尝试显示 fetchedResult
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 静态 NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // 配置单元格... 产品 *prod = [self.fetchedResultsController objectAtIndexPath:indexPath]; ************************ //我想连接到关系对象并获取所有订单,但我得到了不兼容的指针类型,它使用 NSSet 类型的表达式初始化“OrderItems *_Strong”。 ******有任何想法吗? OrderItems *order=prod.product; ****************************************** cell.textLabel.text =prod.productName; cell.detailTextLabel.text =[NSString stringWithFormat:@"%@",order.price]; 返回单元格; }我知道 Product 中 product 中的关系对象是 NSSet 如下:
@interface 产品:NSManagedObject @property (nonatomic, 保留) NSString * productName; @property (nonatomic, 保留) NSNumber * qty; @property (nonatomic, 保留) NSSet *product; @结尾 @interface 产品(CoreDataGeneratedAccessors) - (void)addProductObject:(NSManagedObject *)value; - (void)removeProductObject:(NSManagedObject *)value; - (void)addProduct:(NSSet *)values; - (void)removeProduct:(NSSet *)values; @结尾我在不同的程序中做过同样的事情,但我不知道为什么。
任何帮助或建议将不胜感激!
【问题讨论】:
标签: objective-c core-data ios6 xcode4.5