我遇到顯示我的實體Product和OrderItems記錄的大問題。這是一對多關係。顯示關係爲1的核心數據實體記錄:M
我添加記錄到產品實體沒有任何問題,我執行以下功能OrderItem的條目:
- (IBAction)cmdSave:(id)sender { self.product.productName = self.txtProductName.text; NSManagedObjectContext *context =[self managedObjectContext]; OrderItems *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(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } [self.navigationController popViewControllerAnimated:YES]; }
這似乎確定,我的最大的問題是顯示每個產品的所有訂單項。關係Product ====> OrderItems是:產品,逆序是訂單。 OrderItems ===> Product是:orders和inverse是產品。
我嘗試顯示fetchedResult
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; // Configure the cell... Product *prod = [self.fetchedResultsController objectAtIndexPath:indexPath]; ********************* //I wanted to connect to relationship object and get all orders but I get Incompatible pointer types initializing 'OrderItems *_Strong ' with an expression of type NSSet. ******any ideas? OrderItems *order=prod.product; ************************************** cell.textLabel.text =prod.productName; cell.detailTextLabel.text =[NSString stringWithFormat:@"%@",order.price]; return cell; }
我知道在產品的產品的關係對象是的NSSet如下:
@interface Product : NSManagedObject @property (nonatomic, retain) NSString * productName; @property (nonatomic, retain) NSNumber * qty; @property (nonatomic, retain) NSSet *product; @end @interface Product (CoreDataGeneratedAccessors) - (void)addProductObject:(NSManagedObject *)value; - (void)removeProductObject:(NSManagedObject *)value; - (void)addProduct:(NSSet *)values; - (void)removeProduct:(NSSet *)values; @end
我也做了同樣的方式在不同的程序,但我不真的不知道爲什麼。
任何幫助或建議將不勝感激!
你是100%正確,現在可以。謝謝湯姆。 – user1926649