UPDATE関係を保存しない:
を、私は問題を発見:起動時にアプリ、DBをアップグレードするために、私は、すべての活動をダウンロードしたすべてのDBを削除し、活動を挿入します。
したがって、参照は失われます。
ありがとうございます!コアデータ:起動中に
私の関係を保存する際に問題があります。それはうまく動作しますが、私はシミュレータを停止し、再び起動すると関係はなくなりました! これは私のコードです。 ///////////////////
+ (BOOL) createViajeWithJson:(NSString *)responseJson dictParams:(NSDictionary *)dictParams{
MOViaje *viaje = (MOViaje *)[NSEntityDescription insertNewObjectForEntityForName:@"Viaje" inManagedObjectContext:ApplicationDelegate.managedObjectContext];
viaje.nombre = [dictParams valueForKey:@"nombreViaje"];
viaje.destino = [dictParams valueForKey:@"destino"];
viaje.timestamp = [NSDate date];
NSArray *results = [responseJson JSONValue];
for (id object in results){
// get the entity previously saved.
MOActivity *tmpActivity = [MOActivity getActivityById:(NSNumber *)object];
if (tmpActivity != nil) {
[viaje addActivitiesViajeObject:tmpActivity];
[tmpActivity addViajeObject:viaje];
}
}
viaje.numActividades = [NSNumber numberWithInt:[results count]];
NSManagedObjectContext *moc = ApplicationDelegate.managedObjectContext;
NSError *error = nil;
if (![moc save:&error]) {
// Save failed
NSLog(@"Core Data Save Error: %@, %@", error, [error userInfo]);
return NO;
}
return YES;
}
私は、この関数を呼び出す 'actvities' を得ました。
+ (NSArray *) getAllActivitiesFromViaje:(MOViaje *) viaje {
NSArray *temp = [viaje.activitiesViaje allObjects] ;
return temp;
}
i「はVIAJE」を作成し、関係の活動」を追加した後、それは8を返しますが、私は、シミュレータを停止し、再び再起動したときに、それはあなたの助けのための0
感謝を返します!
[CoreDataHelper commitDefaultMOC]が動作しないようです。 – NeverBe
このコード:NSManagedObjectContext * moc = ApplicationDelegate.managedObjectContext; \t NSError * error = nil; \tもし(![MOC保存:&エラー]){ \t \t //保存に失敗した \t \tのNSLog(@ "コアデータの保存エラー:%の@、%の@"、エラー、[エラーのUserInfo]); \t \t return NO; \t} \t return YES; – user380257
非常に奇妙な、保存後に[moc save]のエラーを出力しようとします。たぶん[mac save]はTRUEですが、エラーはnilではありません – NeverBe