【发布时间】:2012-06-14 19:07:38
【问题描述】:
我的应用程序已经开发了几个月,现在我被要求添加核心数据。 SMH。它是一个 tabViewController 应用程序。我不知道这是否有助于回答。
所以我在这里尝试添加它,但我遇到了错误。我在 AppDelegate.h 中为 Core Data 构建,所以我创建了这些 IVAR 并在稍后在 .m 中适当地构建它们。
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
在需要CoreData交互的viewController中,我已经给出了(在.h文件中):
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
并在.m中合成它们:
@synthesize fetchedResultsController = __fetchedResultsController;
@synthesize managedObjectContext = __managedObjectContext;
现在,回到 AppDelegate。在 .m 中,当我尝试将 managedObjectContext 的指针从委托传递给视图时(就像这样):
viewController1.managedObjectContext = self.managedObjectContext;
viewController2.managedObjectContext = self.managedObjectContext;
我收到一个 XCode 错误(对于 viewController1 和 2):
Property 'managedObjectContext' not found on object of type 'UIViewController *'
我不明白这一点,因为两个视图控制器中的属性显然存在并且是合成的。
我什至尝试过退出并重新启动 XCode。可能是系统重启?
(我知道我添加的内容超出了您的需要。)有什么帮助吗?
【问题讨论】:
-
控制器头文件是否正确#import'ed?
-
是的,该应用程序已经开发了几个月,使用相同的 ViewControllers 并且构建和运行良好(除了设置属性)。
-
我首先要问你为什么要尝试设置可能是或可能不是
readonly的属性... -
为了合并 CoreData,我使用 CoreData 创建了一个新项目,并查看了创建的内容。我认为这种方式是将 CoreData 添加到我的项目中最安全的方式,因为它是 Apple 的默认设置。它们不是只读的。
-
你能否克服这些错误?
标签: objective-c ios core-data properties uiapplicationdelegate