我创建了一个名为UserModel.xcdatamodeld的数据模型,其中只有一个Entry:UserBase,并添加了一个名为UserID、类型为Integer 32的属性。
之后,我使用文件->新建文件->NSManagedObject子类为其创建了类,自动生成了UserBase.h和.m文件。
在我的控制器中导入了UserBase.h文件,并创建了一个属性:
NSManagedObjectContext *userBaseObjectContext;
使用
@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext;
在我的controller.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...");
当我尝试构建我的项目时,我收到了这个错误:
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)
这是什么意思?
我按照这个教程进行了操作:http://mobile.tutsplus.com/tutorials/iphone/iphone-core-data/