相关疑难解决方法(0)

Objective-C:断言与异常与错误

在Cocoa中,何时应该使用NSAssert,NSException,NSError?

这就是我一直在想的:

NSAssert - 在创建任何用于程序员自身利益的客户端程序时,可以仔细检查规则,约定,假设或前置条件和后置条件?

NSException - 为了使用该库的其他程序员的利益创建第三方库,以便他们立即知道输入何时无效?

NSError - 当与外部系统连接以获取不保证给我结果的文件,数据库或Web服务等数据时?

cocoa conventions objective-c

79
推荐指数
1
解决办法
2万
查看次数

NSAssert与断言:您使用哪种,何时使用?

我最近读了两篇非常有趣的建议:

  1. 在对StackOverflow回答的评论中,@ Mike Weller说要在生产代码中保留你的断言......性能受到了什么影响,真的吗?有什么理由不让他们进去吗?
  2. 文森特·盖博的博客,他说,你应该更喜欢assertNSAssert......没有任何理由不使用assert?(这不是字母:))

assert objective-c

50
推荐指数
2
解决办法
2万
查看次数

什么是NSAssert1?

我正在iOS上开发一个应用程序.我看到有一个叫做的宏NSAssert1.它是为了什么?NSLog和之间的用法有什么不同NSAssert1

请指导我或建议我可以阅读的教程.

objective-c ios nsassert

7
推荐指数
2
解决办法
8503
查看次数

在Restkit抛出中处理NSAsserts

我正在使用Restkit的对象管理器来处理我的远程api调用.

它会针对各种错误抛出NSAssert.例如,如果服务器返回错误页面而不是格式良好的json,它将引发NSAssert,即使代码没有任何问题.

有一些我很困惑的事情(其中大部分都与异常和nsasserts的一般处理有关)

  1. 我们应该如何处理这些NSAsserts错误?例如,我们想再次重试几次,然后显示"出错了"的消息.(而不是崩溃的应用程序)

  2. 我试图使用catch-try块来捕获错误(下面的代码),但错误没有被捕获.所以我的应用程序一直在失败.此外,无论如何,我不习惯在发布模式下使用try-catch.

  3. 仅仅为了我的理解,为什么Restkit使用NSAsserts,而不是其他失败

非常感谢您的帮助 - 非常感谢!

// code to catch NSAssert that sharedManager throws
@try{
    [sharedManager loadObjectsAtResourcePath:self.resourcePath delegate:self];
}

@catch (NSException *ex) {
    NSLog(@"exception caught");
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios4 ios restkit

5
推荐指数
1
解决办法
1130
查看次数

标签 统计

objective-c ×4

ios ×2

assert ×1

cocoa ×1

conventions ×1

ios4 ×1

iphone ×1

nsassert ×1

restkit ×1