2011-10-14 14 views
5

verileri için coredata ve restkit kullanıyorum. Burada Restkit karmaşık Nesne eşleme, iç içe geçmiş nesne dizileri ile, çekirdek verileri

getsales i ı

- (void)getSales{ 
    RKObjectManager* objectManager = [RKObjectManager  objectManagerWithBaseURL:@"http://baseurl.com"]; 
    RKManagedObjectStore* objectStore = [RKManagedObjectStore  objectStoreWithStoreFilename:@"base.sqlite"]; 
objectManager.objectStore = objectStore; 


RKManagedObjectMapping* saleMapping = [RKManagedObjectMapping mappingForClass:[Sale class]]; 
    [saleMapping mapKeyPathsToAttributes: 
    @"id", @"ID", 
    @"name", @"name", 
    @"start_date",@"startDate", 
    @"end_date", @"endDate", 
    @"image", @"imageUrl", 
    nil]; 

    saleMapping.primaryKeyAttribute = @"ID"; 
    [[RKObjectManager sharedManager].mappingProvider setMapping:saleMapping forKeyPath:@"sales"]; 

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/getSales/" objectMapping:saleMapping delegate:self]; 
} 

esasen ben iç içe olan diziler şöyle yanıtı eşleştirmek için çalışıyorum

@interface Sale : NSManagedObject{ 
} 
@property (nonatomic, retain) NSNumber * ID; 
@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSDate * endDate; 
@property (nonatomic, retain) NSString * imageUrl; 

@implementation Sale 

@dynamic ID; 
@dynamic name; 
@dynamic startDate; 
@dynamic endDate; 
@dynamic imageUrl; 

sahip

{ "success":true, 
"sales" : [ 
      { 
     "brands" :[ 
     {"id":"637", "name":"XYZ"}, 
     {"id":"638", "name":"abc"} 
     ] 
     "end_date" = "2011-10-14 12:00:00", 
     "id" = 3794, 
     "image" = "http://dummy.something.com.jpg", 
     "name" = "test", 
    }, 
     { 
     "brands" =[ 
     {"id":"640", "name":"abc"} 
     ], 
     "end_date" = "2011-10-14 12:00:00", 
     "id" = 3766, 
     "image" = "http://dummy.something.com.jpg", 
     "name" = "text2", 
    }, 
     { 
     "brands" =[ 
     {"id":"641", "name":"XYZ"}, 
     {"id":"642", "name":"abc"}, 
     {"id":"643", "name":"def"} 
     ], 
     "end_date" = "2011-11-06 12:00:00", 
     "id" = 3798, 
     "image" = "http://dummy.something.com.jpg", 
     "name" = "test3", 
    } 
] 
} 

çağrı için json yanıttır nesneleri, bu nesneleri eşleştirmek için doğru yolu nedir? ve Sale sınıfı marka listesini saklamak zorunda ne tür bir özelliği var?

Herhangi bir yardım için teşekkür ederiz, bunu düzeltmek için çok fazla zaman harcadım. ekleyerek

cevap

10

Dene:

[BrandObject objectMapping] BrandObject için eşleme (id ve name özelliklere sahip bir NSManagedObject) 'dir [saleMapping mapKeyPath:@"brands" toRelationship:@"brands" withMapping:[BrandObject objectMapping]];

.

Temelde eşlemeleri eşleştirmek için mapKeyPath:toRelationship:withMapping:'u kullanabilirsiniz. Ayrıca tip NSSet ile Satış nesneye özellik eklemeniz gerekir:

@property (nonatomic, retain) NSSet *brands;

Son olarak, Satış nesnenin uygulanmasında, ekleyin: Diğer @dynamic tabloların yanında @dynamic brands.

Bu yardımcı olur umarız! Teşekkürler.

+1

Son adımı, "NSSet * marka adlı Satış nesnesine dinamik bir özellik ekleyin" biraz daha ayrıntılı olarak açıklayabilir misiniz? Orası ben kapattım. –

+0

NSSet özelliği hakkında daha fazla ayrıntı ile güncelledik. Teşekkürler! –

İlgili konular