【发布时间】:2012-06-08 16:56:05
【问题描述】:
这段代码给了我 EXC_BAD_ACCESS,为什么?
NSMutableDictionary *d = [[NSMutableDictionary alloc] init];
IMP imp= [d methodForSelector:@selector(setObject:forKey:) ];
imp(d, @selector( setObject:forKey:), @"obj", @"key");
我刚开始使用 IMP,先试试吧.. 不走运。不知道为什么我会收到错误,也.. 过去,当我收到 EXC_BAD_ACCESS 时,在控制台打印了消息,这次错误行突出显示。
一些注意事项: ARC已启用,XCode 4.3.2,项目使用Objective-C++作为de默认语言/编译器,此代码在项目的最开始
谢谢大家
【问题讨论】:
-
我无法复制。如果你把它放在一个新的项目中,你还会得到错误吗?
-
是的,我发现... ARC 是问题所在。尝试创建一个启用 ARC 的新 iOS 项目。然后将代码复制并粘贴到某处(我将其放在应用程序 didFinishLaunchingWithOptions 中:)
标签: objective-c objective-c++ objective-c-runtime