mud*_*lee 10 xcode nsmanagedobjectcontext ios5
我创建了一个带有一个Entry:UserBase的UserModel.xcdatamodeld,我添加了一个名称为UserID且类型为Integer 32的属性.
之后,我使用file-> new file-> NSManagedOBject子类为它创建类,它自动创建UserBase.h和.m.
在我的控制器中导入了UserBase.h文件,并创建了一个属性:
NSManagedObjectContext *userBaseObjectContext;
Run Code Online (Sandbox Code Playgroud)
同
@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext;
Run Code Online (Sandbox Code Playgroud)
在mycontroller.m文件中合成了userBaseObjectContext属性,在DidLoad函数中我尝试了这个:
UserBase *userObject=(UserBase *)[NSEntityDescription insertNewObjectForEntityForName:@"UserBase" inManagedObjectContext:userBaseObjectContext];
[userObject setUserID:[NSNumber numberWithInt:42]];
NSError *error;
if(![userBaseObjectContext save:&error])
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Application error" message:@"error" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil,nil];
[alert show];
[alert release];
}
else
NSLog(@"not working...");
Run Code Online (Sandbox Code Playgroud)
当我尝试构建我的项目时,我收到此错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_NSEntityDescription", referenced from:
objc-class-ref in LoginController.o
"_OBJC_METACLASS_$_NSManagedObject", referenced from:
_OBJC_METACLASS_$_UserBase in UserBase.o
"_OBJC_CLASS_$_NSManagedObject", referenced from:
_OBJC_CLASS_$_UserBase in UserBase.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
那是什么意思?
我遵循了这个教程:http://mobile.tutsplus.com/tutorials/iphone/iphone-core-data/
Osc*_* S. 20
未定义的符号通常意味着缺少某些框架.框架是您可以在App上使用的预编译类库.
要在XCode 4上添加框架:
而且,就是这样!只要您执行正确的#import,该框架中包含的类将可用于您的代码.
图1:

为了维护您的项目订单,我建议将新添加的框架拖到Group"Frameworks".
| 归档时间: |
|
| 查看次数: |
4441 次 |
| 最近记录: |