为啥我在这段代码中得到“未知类型名称 NSManagedObjectContext”?
Posted
技术标签:
【中文标题】为啥我在这段代码中得到“未知类型名称 NSManagedObjectContext”?【英文标题】:why am I getting an "unknown type name NSManagedObjectContext" in this code?为什么我在这段代码中得到“未知类型名称 NSManagedObjectContext”? 【发布时间】:2011-03-30 07:19:32 【问题描述】:任何想法为什么我在此代码中得到“未知类型名称 NSManagedObjectContext”?
我基本上是将核心数据添加到现有项目中。我已经添加了 coredata 行 + 我已将 CoreData.framework 添加到项目中。为此,我去了:
何时应用目标 构建阶段 将二进制文件与库链接 然后添加了 CoreData 框架 然后将其拖到项目导航器上,使其与 Xcode 中的其他框架图标一起出现注意确定我还需要做什么? CoreDataBooks 示例代码看起来与我所编译的几乎相同
#import <UIKit/UIKit.h>
@interface myAppAppDelegate : NSObject <UIApplicationDelegate>
UIWindow *window;
UINavigationController *navigationController;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
// Core Data
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext; // ERROR: unknown type
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel; // ERROR: unknown type
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator; // ERROR: unknown type
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
@end
【问题讨论】:
***.com/questions/4101384/… 【参考方案1】:然后您必须将 Core Data 框架头文件导入到任何使用 Core Data 类的文件中。
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
【讨论】:
哦 - 我回到了 XCode 4 为基于 CoreData 窗口的 iPhone 应用程序创建的模板,看看,虽然没有你建议的导入,但有这个“#ifdef OBJC" project-Prefix.pch 文件中的部分,其中确实包含 CoreData 导入语句 像 Greg 提到的那样将声明放在 project-Prefix.pch 文件中,我认为是更好的方法。 记得在项目 Build Phases 中添加 CoreData 框架。【参考方案2】:正如 Greg 上面所说,XCode 4 处理此问题的方式是将 #import <CoreData/CoreData.h>
添加到我在 Other Sources 文件夹/组中找到的 [projectname]_Prefix.pch
文件中。
【讨论】:
-1 这是最糟糕的做法。仅在您需要的地方包含标题,而不是在任何地方。可惜苹果开箱即用地提供了这个前缀头。它的正确用途是缩短编译时间......而不是隐藏依赖关系。以上是关于为啥我在这段代码中得到“未知类型名称 NSManagedObjectContext”?的主要内容,如果未能解决你的问题,请参考以下文章
React Native datetimepicker 问题。在这段代码中为啥 Platform.OS==='ios'?true:false?