raf*_*ian -2 xcode objective-c nslog
(XCode 4.3)为什么在使用EXC_BAD_ACCESS的NSLog语句中发生以下崩溃?
BOOL autoFlag
@property BOOL autoFlag
@synthesize autoFlag
[object setAutoFlag:YES]
NSLog(@"%@", [object autoFlag]); //crashes here in debugger with EXC_BAD_ACCESS
Run Code Online (Sandbox Code Playgroud)
我设法绕过它NSLog(@"%d"...,打印1,但为什么不起作用@"%@"?我以为它只是将值转换为字符串?
%@用于打印作为NSObject类后代的对象的描述,但是这可以被覆盖以使对象打印出您想要的任何内容.
除非autoFlag是一个对象,否则会导致程序崩溃.在NSLog语句中获取这些类型的错误是很常见的,因为编译器无法告诉你想要打印什么样的"东西",而且大部分时间它都不能事先知道(有一些例外,它会在哪里告诉你,你使用了错误的标识符).
如果您想看到的是"真"或"是",那么您需要类似的东西
NSLog(@"Auto Flag: %@",object.autoFlag? @"True":@"False");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |