Bu testte, Çekirdek Veriler projesinde "Müşteri" den "Ürünler" e çok bir ilişki var ve bu ilişki "ürünler" olarak adlandırılıyor. Müşterinin özniteliği 'isim' ve Ürünün özniteliği 'öğe' dir. Ben erişimci kullanabilirsinizÇekirdek verilerinin add & remove (NSSet) erişim yöntemleri nasıl kullanılır?
@interface Customer : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *products;
@end
@interface Customer (CoreDataGeneratedAccessors)
- (void)addProductsObject:(Products *)value;
- (void)removeProductsObject:(Products *)value;
- (void)addProducts:(NSSet *)values;
- (void)removeProducts:(NSSet *)values;
@end
, diyelim bir müşteri (John Doe) ve iki öğe (Widget 1 & Widget 2) izin eklemek için: Ben varlıkları sınıflandırma ettik ve Xcode Müşteri için aşağıdaki üretti yöntem addProductsObject olarak aşağıdaki gibidir:
...
// Add (1) customer object
Customer *custObj = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[custObj setValue:@"John Doe" forKey:@"name"];
// Add (2) products for John Doe
for (int foo=0; foo<2; foo++) {
self.product = [NSEntityDescription insertNewObjectForEntityForName:@"Products" inManagedObjectContext:context];
NSString *objString = [NSString stringWithFormat:@"Widget %d", foo];
self.product.item = objString;
[custObj addProductsObject:self.product];
}
...
Bu çalışıyor ancak, eğer mümkünse, ben addProducts ac faydalanmak istiyorum Processor.
...
NSSet *itemSet = [[NSSet alloc] initWithObjects:@"Widget 1", @"Widget 2", nil];
[custObj addProducts:itemSet];
...
ama bu başarısız:
Ben gibi bir şey ile nesnelerin 'set' yerleştirilmesini kolaylaştırmak için vardır yöntem addProducts erişimci üretilen varsayıyorum. Bu denemede, bir ürün nesnesinin açıkça yaratılmamış olduğunu anlıyorum ve bu nedenle, açık bir ürün tahsisi gerçekleşmedi, ancak belki de erişimcinin bununla ilgileneceğini düşündüm.
nedenle ne addProducts doğru kullanımıdır ve bu konuda, removeProducts?
Teşekkürler.