使用未声明的类型'NSFetchedResultsController'...如何消除此错误?

时间:2016-07-08 01:25:18

标签: swift macos core-data compiler-errors nsfetchedresultscontroller

虽然我是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
    }()

}

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,NSFetchedResultsController尚未在macOS上提供,但它将在10.12 Sierra中引入。

合适的替代品是NSArrayController与Cocoa Bindings一起使用。