我认为这可能与您的实体定义有关。是否可能已声明使用属性名称的实体 id ?那通常是一个 NSNumber 键入模型子类,即 *id 。
id
NSNumber
*id
看来在这种情况下,编译器而不是抱怨 *id 在类文件中,它表示 id 在头文件中,这是令人困惑的。
- >尝试更改属性名称。
我有同样的问题。它通过以下步骤解决:
CoreData.framework
Cmd
Q
#import <CoreData/CoreData.h>
<projectName>-Prefix.pch
`
#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 <Foundation/Foundation.h> #import <CoreData/CoreData.h> #endif
我不知道项目目录中任何文件的存在会影响编译错误,但它对我有用。
希望这对任何阅读它的人都有帮助。
它应该像向目标添加CoreData.framework一样简单:
单击下面的加号按钮(+) 链接的框架和库
然后在你的前缀文件(本例中为Tabs-Prefix.pch)中 #ifdef __OBJC__ 宣言:
#ifdef __OBJC__
#ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #impport <CoreData/CoreData.h> //Added core data here #endif
如果这不起作用,也许您安装了旧版本的Xcode并且路径混乱了。它可能试图导入旧框架。
在我的框架搜索路径中,我有一个错误的路径,一旦我删除它正确构建:
$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks