踩踏时从方法“返回”?

时间:2012-10-13 10:19:37

标签: objective-c xcode lldb

我想退出我正在逐步完成的当前方法。

-(void)helloWorld {
    NSLog(@"Hello");
    // I would like to return here, so that "World" isn't printed.
    NSLog(@"World");  
}

我尝试了以下内容,但没有运气。

(lldb) expr return
<no result>

lldb可以吗?

3 个答案:

答案 0 :(得分:18)

不幸的是,在Xcode 4.5.x中,没有办法强制从函数中提前返回。在http://lldb.llvm.org/的当前lldb源代码中,有一个新添加的命令thread return,它可以执行您想要的操作 - 它包括指定函数返回值的功能。但是,在下一个主要版本发布之前,这不会出现在Xcode中。

答案 1 :(得分:7)

使用Xcode进行调试时,如果程序在断点处暂停,则可以将绿色小箭头拖动到函数中的任何其他行。例如。在以下代码中:

Xcode breakpoint

如果我想跳过NSLog(@"B"),我只需将绿色箭头从第20行拖到第23行,这意味着该功能只会从我想要的任何地方“返回”。

答案 2 :(得分:0)

我刚刚在下面提到的行添加了一个断点:

var computed: Bool { 
   return device.time == 10 // added breakpoint here
}

并出现以下错误:

  

错误:从线程1的第0帧返回错误:我们仅支持   当前设置简单的整数和浮点数返回类型。

似乎仅适用于这两种类型