1

データをコアデータに保存しようとしています。(メインモデルと関連モデル)。kill 後に保存すると、メイン モデルは保存されますが、関連するモデルは保存されません。次のコードがあります。

NSManagedObjectContext *context = [self managedObjectContext];


    Trace *trace = [NSEntityDescription
                    insertNewObjectForEntityForName:@"Trace"
                    inManagedObjectContext:context];


    trace.totalDistance = self.totalDistance;
    trace.averageSpeed = self.averageSpeed;
    trace.theBestSpeed = self.theBestSpeed;
    trace.stopTime = [NSNumber numberWithInt: self.stopTime];
    trace.time = self.time;
    NSMutableArray *nsa = [[NSMutableArray alloc] init];
     for (int i=0;i<locations.count;i++){
     CLLocation* cl =(CLLocation*) locations[i];
         Argument *point = [NSEntityDescription
                            insertNewObjectForEntityForName:@"Argument"
                            inManagedObjectContext:context];

     point.latitude = [NSNumber numberWithDouble:  cl.coordinate.latitude];
     point.langitude = [NSNumber numberWithDouble:  cl.coordinate.longitude];
     point.speed = self.speeds[i];
     [nsa addObject:point];
     }
    NSOrderedSet * ns = [[NSOrderedSet alloc] initWithArray:nsa];
    trace.points = ns;


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

アプリケーションを強制終了すると、引数は保存されませんが、トレースは保存されます。シャットが問題を引き起こす可能性がありますか??

4

2 に答える 2

0

簡単に言えば、アプリを保存する前に強制終了すると、アプリは保存されません。驚く様な事じゃない。

于 2013-09-06T08:39:31.777 に答える
0

まず、エンティティ関係を正しい方法で使用していることを確認してください。

xcode モデル エディターでエンティティを選択し、[関係] に移動して、Argument オブジェクトとの関係が「対多」であることを確認します。属性を使用してオブジェクトをリンクしないでください。機能しません。

それを行った後 (下の画像を確認できます)、新しいオブジェクトを「Trace」オブジェクトに関連付け[traceObject addArgumentsObject:argument]て、同じ方法で削除します。

詳細については、コア データ プログラミング ガイドを確認してください。

モデル - モデル エディター

関係のプロパティ -

関係のプロパティ

後部

于 2013-09-06T08:53:34.197 に答える