從時間在我的項目出現錯誤很少(如每隔100個請求)的時間。我的一些CoreData的請求有data:<fault>
,我無法使用這些數據。我不明白爲什麼會發生這種情況,以及如何防止這種行爲。罕見的錯誤,而讀CoreData:數據:在CoreData結果<fault>
錯誤數據輸出例如:
<NSManagedObject: 0x147ea09b0> (entity: ToDo; id: 0xd000000002f40000 <x-coredata://7B4FEA6E-1B36-467E-BE14-53CC2EE8CE21/ToDo/p190> ; data: <fault>)
正常輸出是一樣的東西:
<NSManagedObject: 0x147ea0790> (entity: ToDo; id: 0xd000000002f40000 <x-coredata://7B4FEA6E-1B36-467E-BE14-53CC2EE8CE21/ToDo/p189> ; data: {
created = "2016-02-19 15:04:42 +0000";
text = "Some Text";
})
我得到的數據有:
let fetchRequest = NSFetchRequest(entityName: "Example")
var examples:[NSManagedObject]
do {
let results =
try self.managedContext.executeFetchRequest(fetchRequest)
examples = results as! [NSManagedObject]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
的問題是從實例結果。代碼不會在catch語句中跳轉。這些示例與預期數據具有相同的長度。在我的下一個請求中,所有數據仍然存在。什麼都沒有丟失。唯一的問題是這個數據對於這個唯一的請求是空的。
我的問題是在Swift中。但我猜目標C可能會有同樣的問題。
任何幫助。先謝謝你!
故障(https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/FaultingandUniquing.html)與核心數據工作的預期部分管理對象。當訪問持久性屬性時,故障將觸發並加載其數據。你在做什麼,這使你成爲一個問題? – Jonah
我和其他所有請求一樣。我加載一些數據。就像我說的,它在99%的案例中都有效。我不知道這1%有什麼不同。我只能重新創建這個bug,如果我多次重複做同樣的事情。沒有什麼變化。我知道我可以通過簡單的檢查結果來解決這個問題,但我想了解問題以完全防止它出現 –
如上所述,這是*沒有錯誤*。只要您訪問對象的任何屬性,如果需要,對象將從持久性存儲中完全初始化。有關類似問題,請參閱http://stackoverflow.com/questions/12399910/how-to-show-detailed-info-inside-nslog-in-coredata-suggest-me-a-solution。 –