我有一个rootViewController并且有一个以编程方式创建的UIButton。我希望这个UIButton显示另一个视图控制器。由于某种原因,它崩溃时出现以下错误:
架构i386的未定义符号:
“_OBJC_CLASS _ $ _ TutorialViewController”,引自: RootViewController.o中的objc-class-ref ld:找不到架构i386的符号collect2:ld返回1退出状态
这是创建Info 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];
}
感谢您的帮助。
答案 0 :(得分:5)
adig可能是对的。
另外,从技术上来说,这并不会导致崩溃。"由于此链接器错误,它无法构建。"你可以说它是一个链接器错误,因为它说," ld返回1退出状态"。 ld是链接器。
在幕后,XCode会在运行之前编译并链接您的代码。如果在编译或链接过程中失败,则表示构建失败,"不是"崩溃。"崩溃是应用程序构建时,但在运行时突然停止。造成这种情况的一个常见原因是访问nil指针。
答案 1 :(得分:2)
检查目标设置,在“编译源”下的“构建阶段”列表中,列表中有TutorialViewController.m文件。
答案 2 :(得分:1)
而不是(IBAction)doHelp:(id)sender
你必须写(void)doHelp
....试试这个:)
答案 3 :(得分:0)
你是#importing .h文件,而不是.m文件吗?
问题不在于您的UIButton,问题是TutorialViewController类没有正确编译。
答案 4 :(得分:0)
非常基本,但我们可能会错过它的时间:) 你在.h文件中声明了相同的方法吗?
答案 5 :(得分:-1)
我认为您必须写(IBAction)
(void)