在Restkit中处理NSAsserts引发

| 我正在使用Restkit的对象管理器来处理我的远程api调用。 它将NSAssert引发大量错误。例如,如果服务器返回错误页面而不是格式正确的json,则即使代码没有问题,它也会引发NSAssert。 我有些困惑(大多数与异常和nsasserts的一般处理有关) 我们应该如何处理这些NSAsserts错误?例如,我们想要重试几次,然后显示“出现问题”消息。 (而不是使应用程序崩溃) 我试图使用catch-try块来捕获错误(下面的代码),但是没有捕获到错误。所以我的应用程序一直在失败。此外,无论如何我都不喜欢在发布模式下使用try-catch。 就我的理解而言,为什么Restkit使用NSAsserts而不是其他失败 非常感谢您的帮助-非常感谢!
// code to catch NSAssert that sharedManager throws
@try{
    [sharedManager loadObjectsAtResourcePath:self.resourcePath delegate:self];
}

@catch (NSException *ex) {
    NSLog(@\"exception caught\");
}
    
已邀请:
        通常,您不应该尝试捕获“ 1”个错误,因为它们表示某些地方出了严重的错误-例如应用程序内部状态不一致,您使用的库不正确等,-因此应用程序需要退出。[1] 未捕获错误的原因是因为
NSAssert
引发了
NSInternalInconsistencyException
[2],这是一个字符串,而不是NSException的实例。您仍然可以按照[3]的方式捕获它们,例如与
    @catch (id ex)
但由于上述原因,不建议使用。 要回答您的第三个问题,请提供有关raised1ѭ等的更多详细信息。 [1]实际上,NSAssert有什么意义? [2] http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/macro/NSAssert [3] http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Exceptions/Tasks/HandlingExceptions.html     

要回复问题请先登录注册