创建项目后,CoreData.framework已添加到我的Frameworks组下,并且在我的项目目标中的link Binary With librarIEs下 – >建立阶段.我创建这个项目时没有检查“使用核心数据” – 复选框甚至没有 – 它只是在我的项目中.我使用Xcode版本4.6.3.
阅读教程,我去了我的App-Prefix.pch并添加了一个导入到CoreData.它现在看起来像这样:
#import <Availability.h>#ifndef __IPHONE_5_0#warning "This project uses features only available in iOS SDK 5.0 and later."#endif#ifdef __OBJC__ #import <UIKit/UIKit.h> #import <CoreData/CoreData.h> #import <Foundation/Foundation.h>#endif
然后,我在AppDelegate.h中添加了以下内容:
@property (Readonly,nonatomic,strong) NSManagedobjectContext *managedobjectContext;@property (Readonly,strong) NSManagedobjectModel *managedobjectModel;@property (Readonly,strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;- (voID)saveContext;
现在,当我覆盖托管对象的getter时,Xcode会抛出一个错误:
Use of undeclared IDentifIEr ‘_managedobjectContext’; dID you mean
‘NSManagedobjectContext’?
这是我在AppDelegate.m中的getter方法:
- (NSManagedobjectContext *)managedobjectContext { if(_managedobjectContext != nil) return _managedobjectContext; NSPersistentStoreCoordinator* psc = [self persistentStoreCoordinator]; if(psc != nil) { _managedobjectContext = [[NSManagedobjectContext alloc] init]; [_managedobjectContext setPersistentStoreCoordinator:psc]; } return _managedobjectContext;}
我也尝试将.pch文件放在我的copy Bundle Resources中,但无济于事.救命?
解决方法 您已正确设置所有内容(请注意,您无需将PCH添加到copy Bundle Resources构建阶段).您收到该错误的原因是因为_managedobjectContext ivar未被合成,因为您在只读属性上覆盖了getter.您需要将属性更改为reaDWrite(我不建议这样做),在类扩展中将该属性重新定义为reaDWrite,或者在类扩展或实现块中手动定义ivar. 总结以上是内存溢出为你收集整理的iphone – 将Core Data添加到现有Xcode项目时未声明的标识符错误全部内容,希望文章能够帮你解决iphone – 将Core Data添加到现有Xcode项目时未声明的标识符错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)