私はこれについて理解できないので、何かあなたの助けが必要です. iOS で CoreData と一緒にMantleを使用しています。
次のように定義された関係があります。
投稿 1:N コメント
REST サービスからデータを取得するときに、コメントの NSMutableArray を含む Mantle オブジェクト ポストを作成します。これは問題なく動作します。
次に、これを Core Data に保存しますが、これは、自分が正しいことを行っているかどうかわからない場所です。
[MTLManagedObjectAdapter managedObjectFromModel:post insertingIntoContext:[self getManagedObjectContext] error:&error];
したがって、投稿オブジェクトを Core Data に保存するためにこれを行っています。Core Data Model には、「post_has_comments」と呼ばれるカスケード 1 対多の関係があります。したがって、オブジェクト Post には「posts_has_comments」があります -> カスケード、オブジェクト「Comment」には「Nullify」と 1 対 1 の関係があります。
私の知る限り、Core Data はこれを NSSet として扱います。私が入れようとしているのは NSMutableArray ですが、これは Mantle が処理してくれるためです (少なくとも、そのソースをざっと見てみるとわかりました)。
残念ながら、Core Data からオブジェクトを取得すると、
Post* post = [MTLManagedObjectAdapter modelOfClass:Post.class fromManagedObject:[[self fetchedResultsController] objectAtIndexPath:indexPath] error:nil];
投稿オブジェクトのプロパティ コメントは空の NSSet であり、事前に挿入するとかなりのエラーが発生します。私が得るエラー:
Core Data: annotation: repairing missing delete propagation for to-many relationship post_has_comments on object [...]
私は立ち往生しています - 多分私はここで何か大きなものを見逃していますか?
私の投稿クラスは、次の静的メソッドを実装しています。
+ (NSDictionary *)managedObjectKeysByPropertyKey {
return @{
@"post_id" : @"id",
@"comments" : @"post_has_comments"
};
}
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"post_id" : @"id",
};
}
+ (NSDictionary *)relationshipModelClassesByPropertyKey {
return @{
@"comments" : IHComment.class
};
}