5

Core Data が iOS 用にリリースされてから使用していますが、エンティティの 1 つに対する insertNewObjectForEntityForName メソッドの呼び出しで何が起こっているのか理解できません。メソッドが呼び出されると、単にnilオブジェクトを返し、例外をスローしません。

コードは次のとおりです。

@try {
    self.observation = [NSEntityDescription insertNewObjectForEntityForName:@"Observation" inManagedObjectContext:moc];
    NSLog(@"No exception on insert");
}
    @catch (NSException *exception) {
    NSLog(@"Insert exception - %@", exception.description);
}
NSLog(@"observation: %@", self.observation ? self.observation.description : @"nil");

出力は次のとおりです。

2012-10-19 10:16:08.749 Track[63779:c07] No exception on insert
2012-10-19 10:16:08.750 Track[63779:c07] observation: nil

ERD 内の他のすべてのエンティティに対して挿入を実行できます。私をからかっているのはこの人だけです(しゃれが意図されています)。

4

2 に答える 2

0

-description を上書きして @"nil" を返す場合を除いて、エラーは表示されません。これは疑問です.... :)

編集 このコメントを回答として投稿して、受け入れることができます。nil オブジェクトのログ出力 (null) はありませんか? したがって、実際には、NSManagedObject の説明メソッドで文字通り @"nil" をログに記録する必要があります。いいえ?;)

あるいは、障害の問題である可能性がありますか? .description (log @"Yes" : @"No") の代わりに三項句に異なるリテラルを記録して、プロパティの問題かどうかを確認します。

于 2012-10-19T17:15:35.567 に答える