在我们使用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)
);
删除一行我没有收到任何错误,但是我得到了一个对象数组,而不是属性。
答案 0 :(得分:2)
我忘了为NSFetchRequest设置resultType
。
let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
fetchRequest.resultType = .dictionaryResultType
答案 1 :(得分:0)
实际上,在大多数情况下使用对象数组而不是属性更好。核心数据将为您的商店往返行程管理最佳负载平衡。您可能最担心的(内存,性能,数据访问时间)实际上是不合理的。
此外,这应该会产生更清晰,更安全和更简洁的代码。