可以将-[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”,也不会得到保证。 –