1

我正在使用 cocos2d 和 CoreData。我已导入“AppDelegate.h”,但无法从中创建对象。我想我会做的就是:

AppDelegate *delegate;

当我这样做时,它会收到一条错误消息,指出未定义 AppDelegate。AppDelegate .h 和 .m 文件位于主文件旁边。

此外,当我尝试写入文件时,我没有收到错误,但它没有写入。

4

2 回答 2

0

在 Cocos2d 2.0 中,AppDelegate 更名为 AppController

AppController *app = (AppController*)[UIApplication sharedApplication].delegate;
于 2013-03-20T06:05:20.913 回答
0

XCode 创建的样板代码(我假设您正在使用 XCode)将为您创建一个名为 *managedObjectContext 的 NSManagedObjectContext。如果您需要创建将与您的核心数据模型交互的其他对象(例如视图控制器),您只需将该 managedObjectContext 对象作为参数传入(或将其链接到自定义类中的属性)并与它在您的自定义类中。值得注意的是,在您的应用程序中传递 AppDelegate 对象并不是一个好习惯。你的应用委托应该是你代码库的基础,而不是一个典型的类。有时您肯定希望(或需要)将应用程序委托作为对象传递或在 IB 中引用它,但通常您的应用程序将在您的

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

方法,您将从那里启动您的主视图控制器。

核心数据中的某些内容还需要持久存储协调器(例如检索托管对象 ID),因此您可能还需要将其传入。如果您在使用 Core Data 时需要一些帮助,这里有很多关于该主题的精彩文章和书籍。我建议尽可能多地阅读,因为 Core Data 一开始可能很难理解。起初它帮助我阅读了一堆教程,因为每个人的解释都有点不同。

这是最近编写的关于绑定、核心数据以及使用应用程序委托帮助您入门的精彩教程:http ://www.raywenderlich.com/21752/how-to-use-cocoa-bindings-and-core-data -in-a-mac-app

于 2013-03-20T00:01:00.970 回答