Этот код дает мне EXC_BAD_ACCESS, почему?Почему этот код дает EXC_BAD_ACCESS (используя IMP)
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++ в качестве языка по умолчанию от/компилятором, этот код находится в самом начале проекта
спасибо ребята
Я не могу воспроизвести. Если вы поместите это в новый проект, вы все равно получите ошибку? – Chuck
Да, что я нашел ... ARC - проблема. Попробуйте создать новый проект iOS с включенной поддержкой ARC. Затем скопируйте и вставьте код где-нибудь (я положил его в приложение didFinishLaunchingWithOptions :) – subzero