iphone - CoreData best practices -
i'm using coredata in latest iphone app. find complex @ beginning guess best choice when need store objects in iphone app (http://inessential.com/2010/02/26/on_switching_away_from_core_data).
is there best practices when using coredata in iphone app? example, don't want controllers deal nsmanagedobjectcontext need when want make requests. define class coredata requests?
i create dedicated object manage core data stack , related objects , behaviors. useful because there lot of boiler plate core data can make generic base manager class , use subclass each app. call appnamedatamodel.
i prefer hide managed object context inside datamodel object. forces other objects in app ask datamodel object access core data stack gives encapsulation , safety.
usually, create methods in datamodel class return fetches entities e.g.
-(nsfetchrequest *) entitynamefetch;
... , have performfetch
method in datamodel. in use, controller ask fetch entity, configures fetch , ask datamodel perform fetch , return results. can script generation of methods return fetch , perform fetch boiler plate well. saves lot of time when prototyping.
a reference datamodel instance can passed controller controller think valid use of singleton pattern make datamodel singleton , provide category on uiviewcontroller property access it. means view controller add project automatically has access datamodel.
this pattern keeps nicely encapsulated , modular. makes easy add new views or share data model between projects. takes little work set once have base class, future use massively sped up.
Comments
Post a Comment