5

我一直在查看有关此错误的无数帖子:

Undefined symbols for architecture i386:
  "_OBJC_IVAR_$_UIViewController._view", referenced from:
      -[ViewController viewDidLoad] in ViewController.o

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经检查了 .m 文件和链接库并复制了捆绑文件。我正在使用 xcode 4.6.2 版本。我想在 ViewDidLoad 中以编程方式制作按钮。

4

3 回答 3

12

确切原因尚不确定,但此错误可能有多种原因:

  1. 要么按钮未实例化(分配和初始化),即按钮为零。

  2. 如果您已全局制作按钮,则使用self访问它

前任:

myButton = [[UIButton alloc] init];// Don't use like this
self.myButton = [[UIButton alloc] init];// Use like this

编辑: 用这个替换你的代码

self.button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.button.frame = CGRectMake(10, 220, 150, 30);
[self.button setTitle:@"Show" forState:UIControlStateNormal];
[self.button addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchDown];
[_view addSubview:self.button]; // Note if you have set property of _view then use it as self.view because it also may be the cause of error.

希望它可以帮助你。

于 2013-04-30T10:15:46.140 回答
3

您是否使用 _view 表示法引用 self.view ?这可能是问题所在。尝试为 self.view 切换 _view

于 2014-06-12T15:20:17.930 回答
0

你确定你使用的是

_viewYour.doSomething

不是

_view.doSomething

我刚才犯了这个错误。

于 2014-07-08T03:16:32.550 回答