私のアプリケーションでは、コアデータをローカルストレージとして使用しています。私はそれを正しく設定し、各エンティティのNSManagedObjectのサブクラスを作成しました。しかし、自分の店に値を挿入しようとすると、JSONフィードの最後のオブジェクトだけが挿入されます。JSONフィードの最後のオブジェクトのみを格納するコアデータ
res = [JSONHandler requestJSONResponse:jsonString];
shows = [res valueForKeyPath:@"Show.Name"];
NSUInteger showIndex = 0;
for(NSString *showName in shows){
showObject = [NSEntityDescription insertNewObjectForEntityForName:@"Show" inManagedObjectContext:managedObjectContext_];
showObject.name = showName;
showObject.iD = [[res valueForKeyPath:@"Show.Id"]objectAtIndex:showIndex];
showObject.desc = [[res valueForKeyPath:@"Show.Description"]objectAtIndex:showIndex];
showObject.activityType = [[res valueForKeyPath:@"Show.ActivityType"]objectAtIndex:showIndex];
showIndex++;
}
これは、JSONフィードの最後のオブジェクトのみを格納します。どんな考え?
編集:私はこれを行う場合には、正常に動作します:
res = [JSONHandler requestJSONResponse:jsonString];
shows = [res valueForKeyPath:@"Show.Name"];
NSUInteger index = 0;
for(NSString *showName in shows){
show = [NSEntityDescription insertNewObjectForEntityForName:@"Show" inManagedObjectContext:managedObjectContext_];
[show setValue:showName forKey:@"name"];
[show setValue:[[res valueForKeyPath:@"Show.Id"]objectAtIndex:index] forKey:@"iD"];
[show setValue:[[res valueForKeyPath:@"Show.Description"]objectAtIndex:index] forKey:@"desc"];
[show setValue:[[res valueForKeyPath:@"Show.ActivityType"]objectAtIndex:index] forKey:@"activityType"];
index++;
}
It'sは基本的に同じことが、それをisn't?しかし、上記のようにするのではなく、NSManagedObjectのサブクラスを使用したいと思います。上記のスニペットでは、NSManagedObject *の代わりにShow:show *が表示されます。
JSONの外観はどうですか? 'NSLog(@" Shows:%@ "、shows)の結果は何ですか? –
私は100%JSONが問題ないと確信しています。 – Magnus
キャストを追加するとどうなりますか? 'showObject =(Show *)[NSEntityDescription insertNewObjectForEntityForName:@" Show "inManagedObjectContext:managedObjectContext _];' – chris