XCode 4.2 NSManagedObject 上下文构建失败

标签 xcode ios5 nsmanagedobjectcontext

我创建了一个 UserModel.xcdatamodeld,其中有一个条目:UserBase,并添加了一个名称为 UserID 且类型为 Integer 32 的属性。

之后,我使用 file->new file->NSManagedOBject 子类为其创建类,这会自动创建 UserBase.h 和 .m。

在我的 Controller 中导入 UserBase.h 文件,并创建一个属性:

NSManagedObjectContext *userBaseObjectContext;


@property (nonatomic, retain) NSManagedObjectContext *userBaseObjectContext;

在 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...");

当我尝试构建我的项目时,出现此错误:
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/

最佳答案

undefined symbol 通常意味着缺少某些框架。框架是您可以在应用程序上使用的预编译类库。

在 XCode 4 上添加框架:

  • 单击项目的根目录(左上角带有蓝图图标的项目)。
  • 单击您的目标(通常是相同的应用程序名称,左侧带有“铅笔制成的 A 图标”)。
  • 单击顶部的“摘要”选项卡,然后向下滚动...折叠分隔线,在“iPad 部署信息”下,您将找到“链接的框架和库”部分(参见下面的图 1)。
  • 单击该列表底部的“+”按钮。
  • 一个弹出窗口会要求您选择一个框架,搜索它,当您选择它时,单击添加。

  • 而且,就是这样!只要您执行正确的#import,该框架中包含的类将在您的代码中可用。

    图1:

    enter image description here

    为了保持您的项目有序,我建议将新添加的框架拖到“框架”组中。

    关于XCode 4.2 NSManagedObject 上下文构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359427/

    相关文章:

    ios - 带有图像的 UITableViewCell 动态高度

    iphone - 1 台设备上的多个推送通知 - iPhone

    ios - 如何单击/迭代 coreData 实例

    ios - 避免在 NSManagedObjectContext 中注册对象堆积(memleak)

    ios - 解析登录和注册功能 SWIFT

    iphone - 如何在单独的 View Controller 中从 webview 中的小图像(如 facebook)中显示全屏图像?

    ios - UIButton 动画问题 - iOS

    uitableview - 表单元格 UILabel setFont 外观代理的替代方案

    ios5 - 现有ObjectWithID :error: returns nil,但objectWithID:返回一个实际可用的对象

    ios - 获取已删除实体的关系。 (碰撞)