我使用的核心数据,看是否在表视图中的消息已被用户看到过。我这样做的方式是消息ID保存到核心数据第一次看到,然后我跑的时候我更新表视图,查看是否有在持久性存储器具有相同ID的条目的读取请求。 现在我想知道的是我应该如何最有效地实现我的读取请求的基础上,耗时有多。我应该要么运行,返回所有已保存的消息ID为阵列的视图加载时的请求,然后在cellForRowAtIndexPath
检查如果数组包含电池的消息ID,或运行在cellForRowAtIndexPath
谓词获取请求?后者将是我的首选方法,但如果我有100左右的单元格,我想知道这是否是礼仪差。 任何帮助将非常感激。的iOS核心数据读取请求时,如何使用
这是我取请求:
func persistQuery(predicateValueString: String!) -> Bool! {
let fetchRequest = NSFetchRequest(entityName: "LogItem")
let predicate = NSPredicate(format: "itemText == %@", predicateValueString)
fetchRequest.predicate = predicate
var didFindResult = true
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [LogItem] {
if fetchResults.count == 0 {
didFindResult=false
}
}
return didFindResult
}
尝试您的两个选项和配置文件,看看哪一个最好的(通常是除非你预期的条件下进行测试时,观察问题不必担心它)的有益响应 – Wain 2015-04-03 21:52:36