获取请求结果,核心数据&斯威夫特3

时间:2016-08-01 03:44:52

标签: core-data entity nsfetchrequest swift3 beta

现在NSFetchResultsController和NSFetchRequest是Swift 3中的Generics,初始化中有一些变化。我使用了迁移器(非常好!)并且一切都很好。但是当我尝试使用Swift 2方式检索属性时,应用程序崩溃了。

我已经彻底研究过这个问题。

有很多关于如何初始化NSFetchResultsController和NSFetchRequest的示例,但是在解释检索时,StackOverflow上的各种响应是竞争的或当前不足。 Apple的文档也很清楚但不起作用。

这是我的代码,其中Person是实体:

// MARK: - Initialize Fetch Results

var fetchedResultsController = NSFetchedResultsController<Person>()

    func setFetchRequest() -> NSFetchRequest<Person> {

    do {

        let fetchRequest: NSFetchRequest<NSFetchRequestResult> = Giver.fetchRequest()

        let fetchResult = try moc?.fetch(fetchRequest)


        // CANNOT FIGURE OUT WHAT GOES HERE e.g.

        // person.name = fetchResult.first (this does not work)

        // person.name = fetchResults (this does not work)


        let sortDescriptor = SortDescriptor(key: "names", ascending: false)

        fetchRequest.sortDescriptors = [sortDescriptor]

    } catch {

        print("Error with request: \(error)")
    }

    return setFetchRequest()
}

// MARK: - Retrieve Fetch Request

func getFetchRequest() -> NSFetchedResultsController<Giver> {

    fetchedResultsController = NSFetchedResultsController(fetchRequest: setFetchRequest(), managedObjectContext: moc!, sectionNameKeyPath: nil, cacheName: nil)

    return fetchedResultsController
}

目前,没有错误,保存黄色三角形表示尚未使用“fetchResult”。我试图获取一些属性:name:String,age:Int,photo:BinaryData。我该如何检索这些属性?

我意识到Swift 3仍处于测试阶段。只是感到沮丧,经历了源头突破性变化的痛苦。

0 个答案:

没有答案