Swift 3. NSFetchRequest 属性ToFetch
Swift 3. NSFetchRequest propertiesToFetch
在Swift3中我们使用NSFetchRequest
的时候要指定NSFetchRequestResult
。但是如何获取一组属性值呢?如果我使用这样的东西
let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
当我尝试执行提取请求时出现异常。
error: -executeRequest: encountered exception = The database appears corrupt.
如果我删除带有 propertiesToFetch
的行,我不会收到任何错误,但我会得到一个对象数组,而不是属性。
我忘记为 NSFetchRequest 设置 resultType
。
let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
fetchRequest.resultType = .dictionaryResultType
实际上,在大多数情况下,使用对象数组比使用属性更好。 Core Data 将为您管理往返商店的最佳负载平衡。您可能最担心的(内存、性能、数据访问时间)实际上是没有必要的。
此外,这应该会产生更干净、更安全和更简洁的代码。
在Swift3中我们使用NSFetchRequest
的时候要指定NSFetchRequestResult
。但是如何获取一组属性值呢?如果我使用这样的东西
let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
当我尝试执行提取请求时出现异常。
error: -executeRequest: encountered exception = The database appears corrupt.
如果我删除带有 propertiesToFetch
的行,我不会收到任何错误,但我会得到一个对象数组,而不是属性。
我忘记为 NSFetchRequest 设置 resultType
。
let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass")
fetchRequest.propertiesToFetch = ["myAttributeName"]
fetchRequest.resultType = .dictionaryResultType
实际上,在大多数情况下,使用对象数组比使用属性更好。 Core Data 将为您管理往返商店的最佳负载平衡。您可能最担心的(内存、性能、数据访问时间)实际上是没有必要的。
此外,这应该会产生更干净、更安全和更简洁的代码。