相关疑难解决方法(0)

实际上,NSAssert有什么意义呢?

我不得不问这个,因为:我唯一认识到的是,如果断言失败,应用程序崩溃了.这就是使用NSAssert的原因吗?或者还有什么好处呢?将NSAssert放在我在代码中做出的任何假设之上是正确的,比如一个函数应该永远不会接收-1作为参数,但可能是-0.9或-1.1?

iphone cocoa-touch uikit ios nsassert

156
推荐指数
6
解决办法
7万
查看次数

如何知道在发布版本中是否禁用了NSAssert?

我经常在iOS代码中看到"断言",我谷歌它,并且知道它断言是真还是假.

我想知道这是否会在发布模式下自动禁用?

xcode objective-c ios

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

Objective-C中的NS_BLOCK_ASSERTIONS

我在iPhone应用程序中使用NSAssert()调用,而我对Apple文档的理解是,如果定义了NS_BLOCK_ASSERTIONS,则断言不会编译到代码中.

要关闭断言,我在头文件中声明:#define NS_BLOCK_ASSERTIONS

但是,断言代码似乎仍在运行.

这里有什么我想念的吗?

谢谢

约翰

iphone debugging xcode objective-c

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

为什么NSOperation示例代码使用@try和@catch

在Apple的并发编程指南中,NSOperation子类示例(非并发和并发变量)使用异常处理,我想知道为什么他们在操作中鼓励这种风格.

清单2-4响应取消请求

- (void)main {
   @try {
      BOOL isDone = NO;

      while (![self isCancelled] && !isDone) {
          // Do some work and set isDone to YES when finished
      }
   }
   @catch(...) {
      // Do not rethrow exceptions.
   }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,通常异常处理不是Objective-C代码中的常见做法 - 异常本质上是程序员错误,应该导致应用程序崩溃,而意外输入最好由NSError处理.(我可能误导理解来自之类的东西这个这个)

我想知道NSOperations是否存在特殊情况,其中异常处理很重要,或者这是否是该指南的特定作者的首选样式.

作为旁注,一些NSOperation示例代码遵循此样式,其他示例则不遵循此样式.大多数高可见性OSS不使用例外(例如AFNetworking).

exception objective-c nsoperation

10
推荐指数
1
解决办法
1374
查看次数