我有一个工作区,我正在尝试添加Core Data。我去了我想要添加Core Data的项目,选择了Target,点击Link Wit Binary Files下的+号并添加了Core Data框架。那部分工作正常。我可以建立和运行。当我尝试下一行并使用这一行时:
#import <CoreData/CoreData.h>
我遇到了构建错误。这些构建错误如下所示:
"ARC Semantic Issue"
Pointer to non-const type 'id' with no explicit ownership
中存在这些错误
NSEntityDescription.h
NSManagedObjectModel.h
NSMnagedObject.h
NSManagedObjectContext.h
NSPersistentStore.h
有谁知道为什么我无法将Core Data导入现有的iOS项目?提前谢谢!
答案 0 :(得分:2)
在我的框架搜索路径中,删除后,我有一条错误的路径正确构建:
$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
答案 1 :(得分:1)
它应该像向目标添加CoreData.framework一样简单:
单击链接的框架和库
下的加号按钮(+)然后在#ifdef __OBJC__
声明中的前缀文件(本例中为Tabs-Prefix.pch)中:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#impport <CoreData/CoreData.h> //Added core data here
#endif
如果这不起作用,也许您安装了旧版本的Xcode并且路径混乱了。它可能试图导入旧框架。
答案 2 :(得分:0)
我认为这可能与您的实体定义有关。您是否可能已声明使用属性名称id
的实体?这通常是模型子类中的NSNumber
类型,即*id
。
在这种情况下,似乎编译器不是在类文件中抱怨*id
,而是在头文件中指示id
,这令人困惑。
- &GT;尝试更改您的属性名称。
答案 3 :(得分:0)
我遇到了同样的问题。它通过以下步骤解决:
CoreData.framework
的引用。CoreData.framework
&#39;在目标设置中。Cmd
+ Q
)。CoreData.framework
文件。CoreData.framework
添加到&#39; Link Binary with Libraries&#39;。#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
`
我不知道项目目录中任何文件的存在会影响编译错误,但它对我有用。
希望这对阅读它的任何人都有帮助。