Swift(Xcode 6.1 beta 2)OS X上带有XML存储的核心数据——NSSortDDescriptor找



我正在学习核心数据,同时也在内化Swift。我正在使用Nick Smith的"Xcode Primer——Starting Core Data",并首先在Objective-C中做每个练习,就像在书中一样,然后在Swift中做。现在,我正在Mavericks 10.9.5上使用Xcode 6.1 beta 2,目前,我正在阅读本书的第5章,该章在OS X上运行,因此默认为XML存储。Objective-C版本一直都很好,但在Swift中,当我进入关于排序的子章节时,我失败了,使用

[<NSXMLDocumentMapNode ...> valueForUndefinedKey:]: this class is not 
key value coding-compliant for the key price.

("价格"是正在排序的属性的正确名称。)

我已经多次删除并重新键入整个项目;不管问题出在哪里,这都不是一个简单的打字错误。我知道类必须从实体名称更改为项目名称体名称,如果做得不对,项目将在早期阶段失败,所以我知道事实并非如此。我所有的类都被标记为@objc,所以不是这样。

突破!我发现这个修复是修复另一个表面上疯狂的错误的副作用。我不得不更改代码:

let sort2 = NSSortDescriptor(key: "price", ascending: true)

至:

let sort2 = NSSortDescriptor(key: "price" as NSString, ascending: true)

进入下一章!

最新更新