On Aug 29, 2009, at 15:59, Clayton Leitch wrote:

I have spent the last month try to solve a simple problem. I need to get the managedObjectContext in a NSDocument based application. I know how to get this in a non-document based application
-(NSManagedObjectContect *)managedObjectContext {
        if (!managedObjectContext) {
        managedObjectContext = [[NSApp delegate] managedObjectContext];
        }
        return managedObjectContext;
}

From the documentation it appears that I get the managedObject Context from the MyDocument instead of the application delegate. I tried a similar structure to the above replacing NSApp delegate with MyDocument. Does anyone have an example of getting the manageObjectContext from the MyDocument class?

You haven't given quite enough information here.

If you mean that your documents are themselves Core Data stores, then you need your document subclass (MyDocument) to be a subclass of NSPersistentDocument instead of NSDocument. If you started from the Core Data document-based application template in Xcode, that's what you were given to start with. Then getting the MOC is easy -- NSPersistentDocument has a 'managedObjectContext' property which you simply access.

Since you mention "replacing NSApp delegate with MyDocument", it's possible you're trying to get the MOC from your MyDocument *class* object ("[MyDocument managedObjectContext]"). If so, that of course doesn't work. It's an instance property ("[myDocument managedObjectContext]").

If you mean that your documents are not Core Data stores, but refer to a shared Core Data store, then of course you continue to ask the application delegate for the MOC.


_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to