Ich brauche deine Hilfe bei etwas, wie ich nicht meinen Kopf herumkommen kann. Ich verwende Mantle zusammen mit CoreData in iOS.Verwenden von Mantle mit Core Data - NSSet und NSArray
I definiert haben Beziehungen, die wie folgt aussehen:
Beitrag 1: N Kommentar
Wenn ich die Daten von meinem REST-Service ziehen, erstelle ich einen Mantel Objekt Beitrag, der ein NSMutableArray von Kommentaren in ihm . Das funktioniert einwandfrei.
Ich dann speichern dies in Core Data, und das ist, wo ich nicht weiß, ob ich Dinge richtig mache.
[MTLManagedObjectAdapter managedObjectFromModel:post insertingIntoContext:[self getManagedObjectContext] error:&error];
So mache ich das in Core Data meinen Beitrag Objekt zu speichern. Das Kerndatenmodell hat eine Beziehung namens "post_has_comments", die eine kaskadierende Eins-zu-Viele-Beziehung ist. Also auf dem Objekt Post habe ich "posts_has_comments" -> cascading, auf meinem Objekt "Comment" habe ich eine Eins-zu-Eins-Beziehung mit "Nullify".
Afaik behandelt Core Data dies als NSSet. Was ich versuche, ist ein NSMutableArray obwohl, wie Mantle sich darum kümmern wird (zumindest was ein kurzer Blick in seiner Quelle mir sagte).
Leider, wenn ich das Objekt wieder von Core Data mit
Post* post = [MTLManagedObjectAdapter modelOfClass:Post.class fromManagedObject:[[self fetchedResultsController] objectAtIndexPath:indexPath] error:nil];
Die Eigenschaft Kommentare zum Post-Objekt erhalten, ist eine leere NSSet, und ich einige ziemlich Fehler auf das Ding vorher einlegen. Die Fehler, die ich bekomme:
Core Data: annotation: repairing missing delete propagation for to-many relationship post_has_comments on object [...]
Ich bin fest - Vielleicht fehlt mir etwas riesiges hier?
My Post Klasse implementiert die folgenden statischen Methoden:
+ (NSDictionary *)managedObjectKeysByPropertyKey {
return @{
@"post_id" : @"id",
@"comments" : @"post_has_comments"
};
}
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"post_id" : @"id",
};
}
+ (NSDictionary *)relationshipModelClassesByPropertyKey {
return @{
@"comments" : IHComment.class
};
}
hast du das gelöst? – onmyway133
Irgendwelche Updates zu diesem Thema? –
Sie können meine Antwort auf die angenommene Antwort überprüfen - Allerdings weiß ich nicht, wie das heute gilt, wie dies vor über zwei Jahren jetzt ist. – Elysium