Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在coreData iOS中替换abort()函数_Ios_Core Data_Nsmanagedobject_Nsmanagedobjectcontext - Fatal编程技术网

如何在coreData iOS中替换abort()函数

如何在coreData iOS中替换abort()函数,ios,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我正在使用CoreData应用程序,正如我们所知,在保存实体或从上下文中删除实体时,我们总是进行此检查 NSError *error; if (![context save:&error]) { // Replace this implementation with code to handle the error appropriately. // abort() causes the application to generate a cras

我正在使用CoreData应用程序,正如我们所知,在保存实体或从上下文中删除实体时,我们总是进行此检查

NSError *error;
    if (![context save:&error]) {
        // Replace this implementation with code to handle the error appropriately.
        // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);

    }
我在我的应用程序中的许多地方也有这样的代码,苹果的评论说,“用代码替换这个实现,以适当地处理错误。abort()会导致应用程序生成崩溃日志并终止。你不应该在发货应用程序中使用这个函数,尽管它在开发过程中可能很有用。

我想不出几件事

1) 向用户显示什么消息

2) 我应该要求用户向我发送错误报告吗

3) 我应该使用中止吗?

1)完全由您决定。请务必简单地解释出现了问题,他们的数据无法保存。这种情况应该非常罕见

2) 这也取决于你,但大多数用户不知道如何做到这一点。如果你在应用程序中实现了将错误通过电子邮件发送给你的逻辑,这会有所帮助

责任3)绝对不是(关于“您不应在装运应用程序中使用此功能”有什么不清楚的地方?)。保存失败不会使您的应用程序无法继续,因为数据仍将在内存中可用


备选方案3)完全由您决定。如果应用程序审查团队发现了它,您将被拒绝。但这种保存失败不太可能发生在开发之外。

(1)由您决定。(2)由您决定。(3)从您自己发布的评论中可以看出:“您不应该在装运应用程序中使用此功能“您应该在整个应用程序中实现一致的错误处理。如何做到这一点取决于你自己。实现这一点的常用方法是实现错误响应器链@quellish错误响应程序仅在OSX中可用(本文标记为iOS)是的,您可以在iOS上实现错误响应程序链。示例:好的,borrden,正如你所说的,如果我在我的应用程序中实现了一个电子邮件逻辑,id用户按cancel而不是给我发送电子邮件,那么会发生什么?这个应用程序是以asual运行还是会崩溃?我想不出有什么好的理由故意让它崩溃。您应该继续,因为没有发生损坏(保存失败)。它可能会继续失败,但我认为从用户的角度来看,它仍然比崩溃要好。没有什么比突然看到主屏幕更令人不安的了。