测试人员遇到了(iOS)应用程序因启动无法满足的Core Data故障而崩溃的情况(抛出NSObjectInaccessibleException
)。因为应用程序所做的第一件事是使用托管对象填充表视图,所以应用程序在启动时会继续崩溃。
问题很简单。 如何解决此问题,以便测试人员至少可以继续使用应用程序而不会丢失数据?
要为此问题提供更多上下文,应用程序会在配置表视图单元格时崩溃,如下所示。从tableView:cellForRowAtIndexPath:
。
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
// Fetch Store
CCDStore *store = [self.fetchedResultsController objectAtIndexPath:indexPath];
// Configure Cell
[cell.textLabel setText:[store name]]; // Exception is thrown due to Core Data fault
[cell.detailTextLabel setText:[store numberOfLists]];
}
因为我无法访问设备或(SQLite)数据库,我猜测数据库的一部分包含导致错误的损坏数据。
答案 0 :(得分:0)
当我在应用程序中看到错误时,通常会因释放NSManagedObjectContext
而发生。当从上下文“获取”NSManagedObject
,然后释放上下文时,对象会触发故障以释放内存。因此,检查上下文是否存在可以告诉您这是否是问题。如果是,请确保以正确的方式保留它(如果使用ARC,请在类的接口文件中声明上下文。
答案 1 :(得分:0)
我知道这不太理想,但在有问题的行周围添加@try / @catch
并处理catch中的错误会阻止您的应用崩溃。