UIButton, который создается программно сбой при вызове метода - PullRequest
0 голосов
/ 22 марта 2012

У меня есть rootViewController и UIButton, который создается программно.Я хочу, чтобы этот UIButton отображал другой контроллер вида.По какой-то причине происходит сбой со следующей ошибкой:

Неопределенные символы для архитектуры i386:
"_OBJC_CLASS _ $ _ TutorialViewController", ссылка на которую: objc-class-ref в RootViewController.o ld: symbol (s) не найден для архитектуры i386 collect2: ld вернул 1 состояние выхода

вот код, который создает информационную UIButton.этот код находится в методе loadView:

 // Create a Button to get Help          
 UIButton *helpButton =  [UIButton buttonWithType:UIButtonTypeInfoDark ] ;
 CGRect buttonRect = helpButton.frame;

 // CALCulate the bottom right corner
 buttonRect.origin.x = self.view.frame.size.width - buttonRect.size.width - 8;
 buttonRect.origin.y = buttonRect.size.height - 8; 
 [helpButton setFrame:buttonRect];

 [helpButton addTarget:self action:@selector(doHelp:) forControlEvents:UIControlEventTouchUpInside];
 [self.view addSubview:helpButton];

}

Вот действие по переносу на другой контроллер представления:

- (IBAction)doHelp:(id)sender{
 NSLog(@"help button pressed");

 TutorialViewController *sampleView = [[[TutorialViewController alloc] init] autorelease];
 [sampleView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
 [self presentModalViewController:sampleView animated:YES];
}

спасибо за любую помощь.

Ответы [ 6 ]

5 голосов
/ 22 марта 2012

Адиг, вероятно, прав.

Кроме того, технически это не «авария». Это "не в состоянии построить, с этой ошибкой компоновщика." Вы можете сказать, что это ошибка компоновщика, потому что он сказал: «ld вернул 1 состояние выхода». ld является компоновщиком.

Под прикрытием XCode компилирует и связывает ваш код перед его запуском. Если во время компиляции или компоновки происходит сбой, это «ошибка сборки», а не «сбой». Сбой происходит, когда приложение создается, но затем внезапно останавливается во время выполнения. Одной из распространенных причин этого является обращение к нулевому указателю.

2 голосов
/ 22 марта 2012

Проверьте в настройках Target, на этапах сборки в списке Compile Sources, у вас есть файл TutorialViewController.m в списке.

1 голос
/ 22 марта 2012

вместо (IBAction)doHelp:(id)sender вы должны написать (void)doHelp .... попробуйте это:)

0 голосов
/ 22 марта 2012

очень просто, но иногда мы можем пропустить это :) Вы объявили тот же метод в .h файле?

0 голосов
/ 22 марта 2012

Вы # импортируете файл .h, а не файл .m?

Проблема не в вашей UIButton, проблема в том, что класс TutorialViewController не компилируется правильно.

0 голосов
/ 22 марта 2012

Я думаю, вместо (IBAction), вы должны написать (void)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...