XCode 6 / Swift / Core Data,同样适用于Mac和iOS项目

时间:2014-06-25 05:55:18

标签: ios xcode macos core-data swift

我最近几周在Mac和iOS上使用Swift和CoreData。

我使用的模型最初是在iOS项目中创建的。我已经成功创建了Objective-C NSManagedObject类并且插入,获取记录工作完美。

然后,我将模型文件从iOS项目拖放到Mac(OS X)项目。我检查了所有属性,似乎他复制得很好。我再次创建了Objective-C NSManagedObject类,xCode完成了一个桥接,这很好。我甚至可以毫无问题地插入新实体,但是有了提取 - 有问题:

我正在使用以下代码将记录提取到数组中:

var recipesArray: Recipe[] {
get {
    if !_recipesArray {
        var request = NSFetchRequest(entityName: "Recipe")

        let sortDescriptor = NSSortDescriptor(key: "title", ascending: true)

        request.sortDescriptors = [sortDescriptor]

        var fetchResults = appDelegate.managedObjectContext?.executeFetchRequest(request, error: nil)

        if (!fetchResults) {
            println("fetch error")
        }

        println(fetchResults)

        _recipesArray = fetchResults as? Recipe[]

    }
    return _recipesArray!;
}
}

这与我在iOS项目中使用的代码相同,但不起作用。当我使用调试器工具提示或打印时,我得到正确的记录数,但对于每个记录(实体),我得到以下错误:

[0] = <error: use of undeclared identifier 'cocoarr'
error: 1 errors parsing expression

我不确定我做错了什么。也许我错过了一些重要的步骤,或者我需要考虑一些限制。

我想通知我已经检查了SQLite客户端中的两个.sqlite文件,并且iOS和OS X文件之间存在一些差异。试图在AppDelegate文件中通过xCode生成的CoreData代码,并且在创建商店时似乎使用了相同的参数。

非常感谢您的帮助。

0 个答案:

没有答案