Множество подобных вопросов, но без решения, которое работает в моем случае.
Я пытаюсь написать простой FlipSideApp. Всего два представления с одной кнопкой каждое (flipBtn | flopBtn) для представления другого представления наоборот. flip
при первом просмотре работает нормально. flop
с другой стороны вызывает unrecognized selector sent to instance 0x6c3adf0
.
Приложение аварийно завершает работу после вызова [self dismissViewControllerAnimated:YES completion:nil];
в файле FlipSide.m (см. Код ниже). Где 0x6c3adf0
- текущий адрес self
, который в этом случае является экземпляром FlipSide : UIViewController
.
Поэтому я думаю, что нераспознанный селектор, упомянутый в сообщении об ошибке, - это dismissViewControllerAnimated:completion
-method.
При вводе Xcode CodeSense «рекомендует» этот метод.
Согласно Справочнику по классу UIViewController этот метод известен в SDK iOS 5.0.
Моя цель развертывания - 5.0, устройство iPhone, базовый SDK iOS 5.0, стандарт архитектуры (arm7).
Если для всех исключений установлена символическая точка останова, отладчик останавливается на UIApplicationMain в основной функции. Ничего подобного.
Зомби-объекты включены. Даже когда я думаю, что проблема не в утечках памяти.
Что я могу сделать, чтобы селектор распознавался?
Файл: "AppDelegate.m"
#import "FirstViewController.h"
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc]
initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
UIViewController *viewController1 = [[[FirstViewController alloc]
initWithNibName:@"FirstViewController" bundle:nil] autorelease];
self.window.rootViewController = viewController1;
[self.window makeKeyAndVisible];
return YES;
}
Файл: "FirstViewController.h"
@interface FirstViewController : UIViewController
- (IBAction)flipBtn:(id)sender;
@end
Файл: "FirstViewController.m"
…
- (IBAction)flipBtn:(id)sender {
NSLog(@"%s -- reached --", __PRETTY_FUNCTION__);
FlipSide* flipSide = [[FlipSide alloc] initWithNibName:@"FLipSide" bundle:nil];
[self presentViewController:flipSide animated:YES completion:nil];
NSLog(@"%s -- done --", __PRETTY_FUNCTION__);
}
Файл: "FlipSide.h"
@interface FlipSide : UIViewController
- (IBAction)flopBtn:(id)sender;
@end
Файл: "FlipSide.m"
#import "FlipSide.h"
- (IBAction)flopBtn:(id)sender {
NSLog(@"%s -- reached --", __PRETTY_FUNCTION__);
NSLog(@"self address is: %@", self);
// // // ??? unrecognized selector sent to instance ???
[self dismissViewControllerAnimated:YES completion:nil]; // <--
NSLog(@"%s -- done --", __PRETTY_FUNCTION__);
}
Консоль OutPut - это:
-[FirstViewController flipBtn:] -- reached --
-[FirstViewController flipBtn:] -- done --
-[FLipSide flopBtn:] -- reached --
self address is: <FLipSide 0x6c3adf0>
-[FLipSide flopBtn:] -- done --
-[FLipSide flopBtn:]: unrecognized selector sent to instance 0x6c3adf0
[self.navigationController dismissView...]
. Я столкнулся со странными проблемами с памятью, если вы вызываете его вUIViewController
вместоUINavigationController
. - person Craig Otis   schedule 12.12.2011