Ich verwende CoreData in meiner Anwendung. Ich möchte alle mit CoreData zusammenhängenden Sachen als API abstrahieren, so dass der Konsument die API verwenden kann, anstatt CoreData und seine generierten Modellobjekte direkt zu verwenden. Coredata erzeugt das verwaltete Objekte Modell wie folgtCoreData Model Objects für API
@interface Person : NSManagedObject
@end
ich meine API zum Beispiel MyApi definieren möchten, und es hat eine Funktion namens als
createPerson:(Person*)p;
So der Verbraucher dieser createPerson API braucht eine Person zu erstellen Datenobjekt (wie POJO in Java World) und rufen Sie diese API auf. Aber ich kann nicht Person erstellen Objekt mit
Person *p = [Person alloc] init]
weil der designierte initializer für diese Person Modell von Coredata erstellt nicht diese Art der Erzeugung ermöglichen.
Also sollte ich definieren, dass entsprechende Benutzer zugewandten Datenobjekt PersonDO sein kann und diese API sollte dies statt nehmen, um die Daten in die API-Implementierung zu tragen?
Ist meine Vorgehensweise richtig? Irgendwelche Experten beraten, wenn Entwurf die API auf diese Weise ein gutes Entwurfsmuster ist?
Sieht aus wie das soll eine Klassenmethode sein. Ersetzen Sie '-' durch '+'. –
Außerdem muss es viele andere Dinge geben ... nicht praktisch, es sei denn, Sie fügen Kategorien zu NSManagedObject hinzu, so dass "save" für den Kontext zusätzlich zu anderen Dingen aufgerufen wird. –
Ja, es sollte zu categorey hinzugefügt werden, sowohl mit speichern, löschen, und all die anderen Sachen –