我正在使用cocos2d和CoreData。我导入了“AppDelegate.h”,但我无法从中创建对象。我会认为我所要做的就是:Xcode Cocos2d无法创建AppDelegate对象
AppDelegate *delegate;
当我这样做的时候会得到一个错误,说没有定义AppDelegate。 AppDelegate .h和.m文件位于主文件旁边。
此外,当我尝试写入文件时,我没有收到错误,但没有写入。
我正在使用cocos2d和CoreData。我导入了“AppDelegate.h”,但我无法从中创建对象。我会认为我所要做的就是:Xcode Cocos2d无法创建AppDelegate对象
AppDelegate *delegate;
当我这样做的时候会得到一个错误,说没有定义AppDelegate。 AppDelegate .h和.m文件位于主文件旁边。
此外,当我尝试写入文件时,我没有收到错误,但没有写入。
由XCode创建的锅炉板代码(我假设您使用的是XCode)将为您创建一个名为* managedObjectContext的NSManagedObjectContext。如果您需要创建其他将与您的核心数据模型(如视图控制器)交互的对象,只需将该managedObjectContext对象作为参数传递(或将其链接到自定义类中的属性)并与其交互它在你的自定义类中。值得注意的是,在应用程序中传递AppDelegate对象并不是一个好习惯。您的应用程序委托应该在您的代码库的基础上,而不是作为典型的类来对待。有一定时候,你会希望(或需要)通过应用程序的委托为对象或引用它在IB,但通常你的应用程序将在您的
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
方法启动,你将启动主视图控制器从那里。
核心数据中的一些内容还需要持久性存储协调器(例如,检索托管对象ID),因此您可能还需要将其传入。如果您需要Core Data的帮助,那么有关这个主题的一些很棒的文章和书籍。我建议你尽可能多地阅读,因为核心数据起初很难理解。它帮助我阅读了大量的教程,因为每个人都有不同的解释。
这里是写在绑定,核心数据有很大最近的教程,并与应用程序委托的工作,让你开始:http://www.raywenderlich.com/21752/how-to-use-cocoa-bindings-and-core-data-in-a-mac-app
在cocos2d 2.0,AppDelegate中被重命名为AppController的
AppController *app = (AppController*)[UIApplication sharedApplication].delegate;
好了,别不要将您的managedObjectContext与您的应用程序委托混淆。鉴于您正在使用核心数据,您可能正在创建一个NSManagedObjectContext *上下文;而不是你上面写的。 – JiuJitsuCoder 2013-03-19 23:21:50
哦,是的,你是对的,但是我需要能够从AppDelegate创建一个对象来使用coredata。如我错了请纠正我。 – 2013-03-19 23:42:05