虽然我是swift的新手,但我对核心数据和获取结果控制器都有经验。所以,我很困惑,当我编译下面的代码时,我收到一个错误“使用未声明的类型'NSFetchedResultsController'”
我查看了我添加到项目中的CoreData框架内部,并且NSFetchedResultsController不存在。我试图删除并重新安装Xcode(版本7.3.1),假设快速支持已过时,但没有快乐。我发现了很多关于“使用未声明的类型”错误的文章...引用了一个实例或声明不正确的自定义框架。许多其他文章详细描述了如何在swift代码中使用NSFetchedResultsController。在任何地方都没有任何帮助,没有任何关于苹果框架缺少一个记录良好的类
任何人都有解决方案吗?
我的代码:
import CoreData
import AppKit
class MyViewController: NSViewController, NSTableViewDataSource {
@IBOutlet weak var tableView: NSTableView?
let fetchedResultsController: NSFetchedResultsController = {
var request: NSFetchRequest = NSFetchRequest(entityName: "ZIdea")
let f: NSFetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil);
f.delegate = self
return f
}()
}
答案 0 :(得分:1)
正如评论中所提到的,NSFetchedResultsController
尚未在macOS上提供,但它将在10.12 Sierra中引入。
合适的替代品是NSArrayController
与Cocoa Bindings一起使用。