iPhone nslog“;EXC“不良访问”;
我正在尝试使用NSLog打印控制台消息。问题是有时我在调用它时收到“EXC\u BAD\u ACCESS”错误iPhone nslog“;EXC“不良访问”;,iphone,Iphone,我正在尝试使用NSLog打印控制台消息。问题是有时我在调用它时收到“EXC\u BAD\u ACCESS”错误 -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { NSLog(@"Working test %d", toInterfaceOrientation); NSLog(@"EXC_BAD_ACCE
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"Working test %d", toInterfaceOrientation);
NSLog(@"EXC_BAD_ACCESS %@", toInterfaceOrientation);
}
这里我只想看看传入函数的参数包含什么。第一个NSLog工作正常。第二个导致“EXC\u BAD\u ACCESS”,我不明白为什么?
%@
仅适用于对象。而toInterfaceOrientation不是一个对象
正如您在的文档中所看到的,它只是一个示例 EXC\u BAD\u访问通常意味着您试图调用已从内存中释放的对象。尝试在您的环境变量中打开NSZombies,以查看它在何处导致问题 在这里回答一个类似的问题:
第二次NSLog崩溃是因为您试图将整数打印为NSObject(%@而不是%d)。UIInterfaceOrientation是一个枚举,它不起作用。 %@仅适用于对象
UIInterfaceOrientation
是一个枚举:
当您使用%@时,它基本上是在调用:
[UIInterfaceOrientation descriptionWithLocale]
显然,这将导致EXC\u BAD\u访问接口方向是枚举变量。。。因此,如果要打印日志,必须使用%d。和%@主要用于对象 使用此代码: NSLog(@“EXC\u错误访问:%d”,toInterfaceOrientation)