CoreData Model Objects for API
- by theiOSguy
I am using CoreData in my application. I want to abstract out all the CoreData related stuff as an API so that the consume can use the API instead of directly using CoreData and its generated model objects. CoreData generates the managed objects model as following
@interface Person : NSManagedObject
@end
I want to define my API for example MyAPI and it has a function called as
createPerson:(Person*)p;
So the consumer of this createPerson API needs to create a Person data object (like POJO in java world) and invoke this API. But I cannot create Person object using
Person *p = [Person alloc] init]
because the designated initializer for this Person model created by CoreData does not allow this type of creation.
So should I define corresponding user facing data object may be PersonDO and this API should take that instead to carry the data into the API implementation?
Is my approach right? Any expert advise if design the API this way is a good design pattern?