-4

我在我的代码中插入了 NSLog() 调用,如下所示:

NSLog(@"error message = %@", strError);

我期望打印结果如下:

error message = abcdefg

但 NSLog() 打印这个:

error message = abcd

它被修剪了。这似乎不对,所以我在调试控制台中输入了以下命令:

po strError

结果与预期一致:

abcdefg

为什么我不能从 NSLog() 和po这里得到相同的结果?我希望打印完整的字符串,例如 for po,但我的程序使用 NSLog() 并输出截断的字符串。

为什么会这样,我该如何解决?

4

1 回答 1

-1

来自技术说明 TN2124

print-object(PO)实际上调用了指定对象的debugDescription方法。NSObject 通过调用 description 方法来实现这个方法。因此,默认情况下,对象的调试描述与其描述相同。

NSLog调用description方法并print-object(PO)调用debugDescription方法。两者都是一样的。

于 2012-09-10T08:56:45.663 回答