可以將-[NSManagedObjectContext executeFetchRequest:error:]
和-[NSFetchedResultsController performFetch:]
返回給用戶以及應如何處理這些錯誤?我無法在文檔中找到有關這些方法可能出現的錯誤的任何信息。也沒有在CoreData/CoreDataErrors.h
中定義的錯誤代碼似乎適用於提取。核心數據提取返回什麼樣的錯誤?
現在我的錯誤處理的核心數據讀取只是一個NSAssert
這樣的:
NSError *fetchError = nil;
NSArray *fetchedResults = [context executeFetchRequest: request error: &fetchError];
NSAssert(fetchedResults, @"Error fetching: %@", fetchError);
測試時我從未有過這種說法失敗了,但這並不意味着這不能失敗。優雅地處理這些錯誤的最佳做法是什麼?
可可要求您使用'NSError'前檢查直接返回值,而不是錯誤是否是'nil'。錯誤是[有保證](http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html#//apple_ref/doc/uid/TP40001806-CH204-SW1)到如果該方法指示失敗,則該方法有效,但相反 - 即成功爲「nil」 - 即使事先將其設置爲「nil」,也不會得到保證。 –