Swift 3. NSFetchRequest propertiesToFetch

时间:2016-09-20 07:38:12

标签: ios swift core-data swift3 nsfetchrequest

在我们使用NSFetchRequestResult时,在Swift 3中,我们必须指定let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass") fetchRequest.propertiesToFetch = ["myAttributeName"] 。但是如何获得一系列属性值?如果我使用这样的东西

error: -executeRequest: encountered exception = The database appears corrupt.

当我尝试执行获取请求时会触发异常。 propertiesToFetch 如果我用declare begin null; end; create table &&DB_SCHEMA..test_table ( test_column varchar(20) ); 删除一行我没有收到任何错误,但是我得到了一个对象数组,而不是属性。

2 个答案:

答案 0 :(得分:2)

我忘了为NSFetchRequest设置resultType

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

答案 1 :(得分:0)

实际上,在大多数情况下使用对象数组而不是属性更好。核心数据将为您的商店往返行程管理最佳负载平衡。您可能最担心的(内存,性能,数据访问时间)实际上是不合理的。

此外,这应该会产生更清晰,更安全和更简洁的代码。