I created an UserModel.xcdatamodeld with one Entry: UserBase, and I added an attribute which name is UserID and type is Integer 32.
After that, I create classes for it with file->new file->NSManagedOBject subclass, which creates UserBase.h and .m automatically.
In my controller imported the UserBase.h file, and create a property:
NSManagedObjectContext *userBaseObjectContext;
with
@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext;
In mycontroller.m file synthetized the userBaseObjectContext property and in DidLoad function I tried this:
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...");
When I try to build my project, I got this error:
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)
What is that means?
I followed this tutorial: http://mobile.tutsplus.com/tutorials/iphone/iphone-core-data/
Undefined symbols usually mean that some Framework is missing. Frameworks are libraries of pre-compiled classes you can use on your App.
To add a framework on XCode 4:
And, that's it! Classes contained in that Framework will be available on your code as long you do the correct #import.
Figure 1:
To maintain your project ordered, I'll suggest to drag the newly added framework to the Group "Frameworks".
If you imported the alert file into your project, make sure the tick box ticked on the Target Membership ! I had the same problem and after I ticked the box and the error disappeared !
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With