Objective c NSLog给出运行时错误

Objective c NSLog给出运行时错误,objective-c,runtime-error,nslog,Objective C,Runtime Error,Nslog,好的,我知道我可以省略NSLog,但为什么它会给我一个“EXC\u BAD\u ACCESS”错误 使用%d因为它是一个整数,%@用于字符串 NSLog(@"%d", buttonIndex); buttonIndex2是一个整数用法: NSLog(@"%d",buttonIndex2); 然后去读一些关于C的好书。再次查看方法签名 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)butt

好的,我知道我可以省略NSLog,但为什么它会给我一个“EXC\u BAD\u ACCESS”错误


使用
%d
因为它是一个整数,
%@
用于字符串

NSLog(@"%d", buttonIndex); 

buttonIndex2是一个整数用法:

NSLog(@"%d",buttonIndex2);

然后去读一些关于C的好书。

再次查看方法签名

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex2
buttonIndex2的类型为
NSInteger
。如果在NSLog中执行
%@
,则代码正在调用对象上的
说明
方法。但是buttonIndex2不是一个对象

使用
NSLog(@“%d”,按钮索引2)

第一个(buttonIndex==0)不会使应用程序崩溃,因为您正在对内存地址为0的对象调用
描述
,这基本上与
[nil description]
相同,这在Objective-C中是完全合法的。

%i
(我个人的偏好导致我认为int不是十进制)。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex2