2012-04-30 9 views
0

私の問題はどこですか?私のcoredataに私のjSONを埋め込んだコアデータ

phone.name = [[[json valueForKey:@"boxesDetail"] objectAtIndex:1] valueForKey:@"name"]; 
     phone.number = [NSNumber numberWithInt:[[[[json valueForKey:@"boxesDetail"] objectAtIndex:1] valueForKey:@"number"] intValue]]; 

はなく以前のもの:私は、このいずれかを意味し、私のJSONと私のcoredataを移入したいが、その唯一の最後のオブジェクトを取り込みます。

これは私のコードです:あなたはコアデータを移入するループをコーディングない私を作るためのアイデアを持っている場合

- (void) add{ 
    NSManagedObjectContext *context = [app managedObjectContext]; 
    Phone *phone = [NSEntityDescription insertNewObjectForEntityForName:@"Phone" inManagedObjectContext:context]; 

    if (nameText.text.length <= 0 || numberText.text.length <= 0) 
    { 
     NSLog(@" hey hey, t'as pas oublié kkchose ?"); 
    } 
    else 
    { 
     phone.name = nameText.text; 
     phone.number = [NSNumber numberWithInt:[ numberText.text intValue]]; 

     NSLog(@"ADD : %@", phone.name); 

     [[NSNotificationCenter defaultCenter] postNotificationName:@"Test" object:self]; 

     [self dismissModalViewControllerAnimated:YES]; 
    } 


    NSString *urlString = [NSString stringWithFormat:@"http://localhost:8888/json.txt"]; 
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
    NSError *err; 

    NSMutableArray *json = (NSMutableArray*)[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&err]; 


    for (int i = 0; i != 2; i++) 
    { 
     phone.name = [[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"name"]; 
     phone.number = [NSNumber numberWithInt:[[[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"number"] intValue]]; 
    } 


    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Phone" inManagedObjectContext:context]; 

    [request setEntity:entity]; 

    NSArray *array = [context executeFetchRequest:request error:&err]; 

    for (Phone *pho in array) 
    { 
     NSLog(@"NAME %@", pho.name); 
     NSLog(@"PHONE %@", pho.number); 
    } 

} 

はところで、私はあなたのおかげで

答えて

0

を^^ますあなたは一つだけを作成しますこの行の管理オブジェクト:

NSManagedObjectContext *context = [app managedObjectContext]; 

そしてあなたが名前と番号がこれらの線で3回フィールド設定:

for (int i = 0; i != 2; i++) 
{ 
    phone.name = [[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"name"]; 
    phone.number = [NSNumber numberWithInt:[[[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"number"] intValue]]; 
} 

3つのオブジェクトを作成して1つではなく作成すると思います。ループ内で管理対象オブジェクトの作成を移動します。

for (int i = 0; i != 2; i++) 
{ 
    Phone *phone = [NSEntityDescription insertNewObjectForEntityForName:@"Phone" inManagedObjectContext:context]; 
    phone.name = [[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"name"]; 
    phone.number = [NSNumber numberWithInt:[[[[json valueForKey:@"boxesDetail"] objectAtIndex:i] valueForKey:@"number"] intValue]]; 
} 
関連する問題