Swift 3. NSFetchRequest propertiesToFetch

久未见 提交于 2019-12-30 11:16:08

问题


In Swift 3 when we use NSFetchRequest, we have to specify NSFetchRequestResult. But how to get an array of properties values? If I use something like this

let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]

an exception fires when I try to execute fetch request. error: -executeRequest: encountered exception = The database appears corrupt. If I remove a line with propertiesToFetch I don't get any errors, but I get an array of objects, not properties.


回答1:


I forgot to set resultType for NSFetchRequest.

let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
fetchRequest.resultType = .dictionaryResultType



回答2:


Actually, you are better off in most cases using the array of objects rather than properties. Core Data will manage the optimal load balancing for round trips to the store for you. What you presumably worry about most (memory, performance, data access times) is really not warranted.

Also, this should result in cleaner, safer and more concise code.



来源:https://stackoverflow.com/questions/39588311/swift-3-nsfetchrequest-propertiestofetch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!