İlk RestKit uygulamasında çalışıyorum ve yerel önbellekleme için CoreData kullanıyorum. İçinde < < --- >> kategorisi arasında çoktan çoğa ilişkisi var. İlişki postalar ve kategoriler olarak adlandırılır.RestKit çoktan çoğa eşleme nasıl yapılır?
Post JSON çağrısında, bu gibi kategoriler için kimlik aldım: {"post": [...] "categories":[1,4] [...]
, burada 1 ve 4, kimlikler.
@interface Post : NSManagedObject
[...]
@property (nonatomic, retain) NSSet *categories;
[...]
Özel bir Kategori modeli nesne aynı şeyi yapmak:
İçinde böyle kategoriler için bir özellik var, NSManagedObject
devralan bir özel Post
modeli nesnesi var.
Benim eşleştirmeleri anda şöyle görünür: '[<__NSCFNumber 0x6c625e0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key id.'
kimse bana bu ilişkiyi eşlemek için nasıl herhangi bir ipucu verebilir Ben gerçekten takdir ediyorum:
RKManagedObjectMapping *categoryMapping = [RKManagedObjectMapping mappingForClass:[Category class] inManagedObjectStore:objectManager.objectStore];
categoryMapping.primaryKeyAttribute = @"categoryId";
categoryMapping.rootKeyPath = @"categories";
[categoryMapping mapKeyPath:@"id" toAttribute:@"categoryId"];
[categoryMapping mapKeyPath:@"name" toAttribute:@"name"];
[...]
RKManagedObjectMapping* postMapping = [RKManagedObjectMapping mappingForClass:[Post class] inManagedObjectStore:objectManager.objectStore];
postMapping.primaryKeyAttribute = @"postId";
postMapping.rootKeyPath = @"post";
[postMapping mapKeyPath:@"id" toAttribute:@"postId"];
[...]
[postMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[...]
// Categories many-to-many.
[postMapping mapKeyPath:@"categories" toRelationship:@"categories" withMapping:categoryMapping];
Bunu çalıştırdığınızda hatası alıyorum.
teşekkür, değiştirmeye karar verdi JSON "kategorilere": [{"category_id": 1}, {"category_id": 4}] ', birleştirme tablosunu nasıl ve ne zaman doldurmam gerektiğini biliyor musunuz? Şu anda sadece kategorileri getiriyorum. Teşekkürler! – Anders
Birleştirme tablosu nedir? Bu aslında başka bir soru. –
Evet, teşekkürler. Birleştirme tablosu, iki tablodan birincil varlıkların depolandığı çoktan çoğa varlıklar arasındaki tablodur. Gönderiyi yüklediğimde aslında bu birleştirme tablosunu doldurur, ancak aynı zamanda Kategori modelimde de bazı nedenlerle yeni satırlar oluşturur. Muhtemelen bu konuyla ilgili başka bir soru soracaktır. Ancak JSON'un değiştirilmesi yardımcı oldu, artık hata yok. Teşekkürler! – Anders