Core data Xcode 6.1 Mac OS X命令行工具的新项目

Core data Xcode 6.1 Mac OS X命令行工具的新项目,core-data,command-line-tool,xcode6.1,Core Data,Command Line Tool,Xcode6.1,我正在学习这个iOS核心数据教程 我的Xcode版本是6.1,而本教程使用的是旧版本。 当需要为Mac命令行创建新项目时,教程会说“将类型更改为“核心数据”,但在我的Xcode中,没有这样的核心数据选项 那么,我该如何启动这个“核心数据”命令行项目呢?首先,您正在使用iOS教程开发Mac OS X应用程序。核心数据的使用在两者之间非常相似,但在应用程序中使用它的方式上存在一些明显的差异(即,mac应用程序通常使用NSArrayController,而iOS应用程序则使用NSFetchedResu

我正在学习这个iOS核心数据教程

我的Xcode版本是6.1,而本教程使用的是旧版本。 当需要为Mac命令行创建新项目时,教程会说“将类型更改为“核心数据”,但在我的Xcode中,没有这样的核心数据选项


那么,我该如何启动这个“核心数据”命令行项目呢?

首先,您正在使用iOS教程开发Mac OS X应用程序。核心数据的使用在两者之间非常相似,但在应用程序中使用它的方式上存在一些明显的差异(即,mac应用程序通常使用
NSArrayController
,而iOS应用程序则使用
NSFetchedResultsController

命令行应用程序的模板没有“核心数据”复选框

对我来说,这是一个好处,因为Xcode模板中包含的核心数据代码在我看来并不是在应用程序中使用它的最佳方式

不过,也就是说,您可以创建一个新的Cocoa应用程序,并检查是否包含核心数据。对于您想要做的事情来说,这可能已经足够了,即处理核心数据


或者,您可以将代码复制/粘贴到命令行应用程序中,以设置和使用基本核心数据堆栈。请确保导入核心数据模块,然后就可以开始了。

我也在做同样的事情,但问题完全相同。我的解决方案是启动一个新的cocoa项目,它将为您提供一个使用核心数据的复选框。这将生成所有核心数据堆栈访问GUBBIN。除了所有的工作都是在AppDelegate.m中完成之外,从这里开始实现是相当简单的。main()函数替换为ApplicationIDFinishLaunching:()。。方法

唯一需要更改的是

(NSManagedObjectModel *)managedObjectModel {
    // The managed object model for the application. It is a fatal error for the application not to be able to find and load its model.
    if (_managedObjectModel) {
        return _managedObjectModel;
    }

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"FailedBankCD" withExtension:@"momd"];
    _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return _managedObjectModel;
}

祝你好运

编辑1: 要获取SQLite数据库,本教程将对其进行更改 if(![coordinator addPersistentStoreWithType:NSXMLStoreType配置:nil URL:URL选项:nil错误:&错误]){ 到
如果(![coordinator addPersistentStoreWithType:NSSQLiteStoreType配置:nil URL:URL选项:nil error:&error]){

我最终按照seiterm的建议为Mac创建了一个Cocoa应用程序。但是创建的数据库不是sqlite格式。因此,我为iOS创建了一个Cocoa Touch应用程序,使用了相同的代码,一切正常

此外,如果您在查找数据库位置时遇到困难,那么打开SQL调试(在其他教程中介绍)可能会有所帮助。这可以通过单击顶部的方案,然后编辑方案,运行配置->参数选项卡添加

 -com.apple.CoreData.SQLDebug 1 
作为参数。然后,当您运行应用程序时,控制台中应该有一个输出,类似于:

CoreData: annotation: Connecting to sqlite database file at "/Users/doraemon/Library/....."   

指向数据库位置。

在最新的xcode版本中,他们删除了命令行工具项目的核心数据选项。因此,您必须手动将核心数据添加到命令行工具项目中
CoreData: annotation: Connecting to sqlite database file at "/Users/doraemon/Library/....."