iPhone nslog “EXC_BAD_ACCESS”
我正在尝试使用nslog来打印控制台消息。问题是有时我调用它时会收到一个"exc-bad-access"错误
1 2 3 4 5 | -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { NSLog(@"Working test %d", toInterfaceOrientation); NSLog(@"EXC_BAD_ACCESS %@", toInterfaceOrientation); } |
这里我只想看看传递给函数的参数包含什么。第一个nslog工作正常。第二个原因是"exc-bad-access",我不明白为什么?.
正如您在EDOCX1[1]的文档中看到的,它只是一个枚举。
第二次nslog崩溃是因为您试图将整数打印为nsObject(%@而不是%d)。uiInterfaceOrientation是一个枚举,它不起作用。
http://developer.apple.com/library/mac/documentation/cocoa/conceptive/strings/articles/formatspecifiers.html
%@仅用于对象。
当您使用%@时,它基本上是在呼叫:
1 | [UIInterfaceOrientation descriptionWithLocale] |
显然,这将导致exc-bad-u访问
exc-bad-access通常意味着您试图调用从内存释放的对象。尝试在您的环境变量中打开nszombie,看看它在哪里导致了问题。
在这里回答类似的问题:如何在Xcode中使用nszombie?
ToInterfaceOrientation是一个枚举变量…因此,如果要打印日志,必须使用%d…….and%@主要用于对象…
使用此代码:
NSLog(@"EXC_BAD_ACCESS :%d",toInterfaceOrientation);