我使用的核心數據,看是否在表視圖中的消息已被用戶看到過。我這樣做的方式是消息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