0
我需要一些幫助來配置RestKit 0.2x ...我將帶有Schedule對象和ScheduleEntries的JSON作爲返回值嵌套數組。 樣品JSON:RestKit 0.2'NSInternalInconsistencyException',原因:'無法爲keyPath scheduleEntries添加映射,已經存在...'
[{
"id": 3,
"name": "Schedule 9",
"sWeek": 9,
"sYear": 2014,
"companyId": 1,
"createdOn": "2014-02-11T22:01:33.547",
"modifiedOn": null,
"companyCode": "0001",
"isActive": true,
"notes": "This is a test note",
"scheduleEntries": [{
"id": 15,
"companyId": 1,
"userId": "a7e46520-8db7-4452-821d-7938b23fcd07",
"scheduleId": 3,
"jobId": 5,
"isActive": true,
"createdOn": "2014-02-11T22:01:33.993",
"modifiedOn": null,
"sWeek": 11,
"sYear": 2014,
"startTime": "2014-03-10T08:48:00",
"endTime": "2014-03-10T08:48:00"
}, {
"id": 16,
"companyId": 1,
"userId": "a7e46520-8db7-4452-821d-7938b23fcd07",
"scheduleId": 3,
"jobId": 3,
"isActive": true,
"createdOn": "2014-02-11T22:01:34.003",
"modifiedOn": null,
"sWeek": 11,
"sYear": 2014,
"startTime": "2014-03-11T00:57:00",
"endTime": "2014-03-11T00:57:00"
}, {....
NSManagedObjects
@interface Schedule : NSManagedObject
@property (nonatomic, retain) NSNumber * scheduleId;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * sWeek;
@property (nonatomic, retain) NSNumber * sYear;
@property (nonatomic, retain) NSNumber * companyId;
@property (nonatomic, retain) NSString * companyCode;
@property (nonatomic, retain) NSString * notes;
@property (nonatomic, retain) NSNumber * isActive;
@property (nonatomic, retain) NSDate * createdOn;
@property (nonatomic, retain) NSDate * modifiedOn;
@property (nonatomic, retain) NSSet * scheduleEntries;
@end
@implementation Schedule
@dynamic scheduleId;
@dynamic name;
@dynamic sWeek;
@dynamic sYear;
@dynamic companyId;
@dynamic companyCode;
@dynamic notes;
@dynamic isActive;
@dynamic createdOn;
@dynamic modifiedOn;
@dynamic scheduleEntries;
@end
@interface ScheduleEntry : NSManagedObject
@property (nonatomic, retain) NSNumber * scheduleEntryId;
@property (nonatomic, retain) NSNumber * companyId;
@property (nonatomic, retain) NSNumber * usrId;
@property (nonatomic, retain) NSNumber * scheduleId;
@property (nonatomic, retain) NSNumber * jobId;
@property (nonatomic, retain) NSNumber * sWeek;
@property (nonatomic, retain) NSNumber * sYear;
@property (nonatomic, retain) NSDate * startTime;
@property (nonatomic, retain) NSDate * endTime;
@property (nonatomic, retain) NSNumber * isActive;
@property (nonatomic, retain) NSDate * createdOn;
@property (nonatomic, retain) NSDate * modifiedOn;
@end
@implementation ScheduleEntry
@dynamic scheduleEntryId;
@dynamic companyId;
@dynamic usrId;
@dynamic scheduleId;
@dynamic jobId;
@dynamic sWeek;
@dynamic sYear;
@dynamic startTime;
@dynamic endTime;
@dynamic isActive;
@dynamic createdOn;
@dynamic modifiedOn;
@end
代碼:
RKManagedObjectStore *managedObjectStore = [RKManagedObjectStore defaultStore];
// Create mapping for entity
RKEntityMapping *scheduleEntryMapping = [RKEntityMapping mappingForEntityForName:@"ScheduleEntry" inManagedObjectStore:managedObjectStore];
scheduleEntryMapping.identificationAttributes = @[@"scheduleEntryId"];
[scheduleEntryMapping addAttributeMappingsFromDictionary:@{
@"id" : @"scheduleEntryId",
@"companyId": @"companyId",
@"usrId" : @"usrId",
@"scheduleId" : @"scheduleId",
@"jobId" : @"jobId",
@"isActive": @"isActive",
@"sWeek": @"sWeek",
@"sYear": @"sYear",
@"startTime": @"startTime",
@"endTime": @"endTime",
@"createdOn": @"createdOn",
@"modifiedOn": @"modifiedOn"
}];
RKEntityMapping *scheduleMapping = [RKEntityMapping mappingForEntityForName:@"Schedule" inManagedObjectStore:managedObjectStore];
scheduleMapping.identificationAttributes = @[@"scheduleId"];
[scheduleMapping addAttributeMappingsFromDictionary:@{
@"id" : @"scheduleId",
@"name": @"name",
@"sWeek": @"sWeek",
@"sYear": @"sYear",
@"companyId": @"companyId",
@"companyCode": @"companyCode",
@"notes": @"notes",
@"isActive": @"isActive",
@"createdOn": @"createdOn",
@"modifiedOn": @"modifiedOn",
@"scheduleEntries": @"scheduleEntries"
}];
[scheduleMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"scheduleEntries"
toKeyPath:@"scheduleEntries"
withMapping:scheduleEntryMapping]];
此代碼是非常接近RestKit 0.2倍的例子,但我似乎無法得到它的工作。我可以得到一個單獨的對象,但是當涉及嵌套數據的對象時,我會卡住。已經有幾天的工作沒有結果。錯誤說我不止一次設置keyPath,但我沒有看到它。任何幫助,將不勝感激。
非常感謝!那是票! – gigantor2012