2013-08-01 41 views
1

我按照這個教程預加載一對多的核心數據關係http://www.raywenderlich.com/12170/core-data-tutorial-how-to-preloadimport-existing-data-updated如何使用JSON

香港專業教育學院目前使用教程,並創建了自己的應用,我有兩個實體,並卡住了我的實體有一對多的關係。

製作(屬性:carMake) 模型(屬性:carModel)

每個品牌都有很多型號。 (一對多關係定義爲(模型))。

我已經設置了反向以及「make」。

我有兩個問題,首先你將如何去填充JSON文件中的數據,如下所示?汽車是數據模型的名稱。

[{ "cars":{ 
      "carMake": "BMW", 
      "models": [ 
         {"carModel": "1 Series"} 
         {"carModel": "3 Series"} 
         { "carModel": "4 Series"} 
        ] 
      "carMake": "Audi", 
      "models": [ 
         {"carModel": "A4"} 
         {"carModel": "A3"} 
        ] 
     } 
}] 

其次如何將我轉換該數據通過Xcode中到SQLite數據庫中光芒教程,他沒有說明如何爲一個做到這一點的許多關係。

非常感謝您發佈回覆的任何人。

下面是使用的代碼預先從JSON文件中填充數據使用一個關係到SQLite的:

[Banks enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    FailedBankInfo *failedBankInfo = [NSEntityDescription 
            insertNewObjectForEntityForName:@"FailedBankInfo" 
            inManagedObjectContext:context]; 
    failedBankInfo.name = [obj objectForKey:@"name"]; 
    failedBankInfo.city = [obj objectForKey:@"city"]; 
    failedBankInfo.state = [obj objectForKey:@"state"]; 
    FailedBankDetails *failedBankDetails = [NSEntityDescription 
              insertNewObjectForEntityForName:@"FailedBankDetails" 
             inManagedObjectContext:context]; 
    failedBankDetails.closeDate = [NSDate dateWithString:[obj objectForKey:@"closeDate"]]; 
    failedBankDetails.updateDate = [NSDate date]; 
    failedBankDetails.zip = [obj objectForKey:@"zip"]; 
    failedBankDetails.info = failedBankInfo; 
    failedBankInfo.details = failedBankDetails; 
    NSError *error; 
    if (![context save:&error]) { 
     NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
    } 
}]; 
+0

這是實際的還是你?如果是的話,你能否用你用於一對一關係的代碼來更新你的問題(我想,這是整個工作的一部分,你懂得如何從教程中處理),因此可能的受訪者可以理解你的具體情況上下文。 –

+0

是仍然堅持這個問題。我將發佈一對一教程中使用的代碼。 – user2512523

+0

在我詳細回答之前,您能不能請帖:製造廠負責存儲價值「寶馬」的領域?模型的哪個字段負責存儲「1系列」等值? –

回答

0

這我怎麼做:

NSError* err = nil; 
NSArray *jsonArray = [[NSArray alloc] init]; 
NSString* dataPath = [[NSBundle mainBundle] pathForResource:@"Words" ofType:@"json"]; 
jsonArray = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath] 
               options:kNilOptions 
               error:&err]; 
NSManagedObjectContext *context = [self managedObjectContext]; 

[jsonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
     WordEntity *word = [NSEntityDescription 
          insertNewObjectForEntityForName:@"WordEntity" 
          inManagedObjectContext:context]; 

word.greekText = [obj objectForKey:@"greektext"]; 
word.englishText = [obj objectForKey:@"englishtext"]; 
word.uid = [NSString stringWithFormat:@"%@", [obj objectForKey:@"uid"]]; 
word.category = [obj valueForKey:@"category"]; 


     NSError *error; 
     if (![context save:&error]) { 
      NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
     } 
    }]; 
}