我一直在查看有关此错误的无数帖子:
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中以编程方式创建Button。
答案 0 :(得分:12)
确切原因存在不确定性,但可能有很多原因导致此错误:
按钮未实例化(已分配和初始化),即按钮为零。
如果您已全局制作按钮,请使用自我
前:
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.
希望它对你有所帮助。
答案 1 :(得分:3)
您是否使用_view表示法引用self.view?这可能是问题所在。尝试切换_view for self.view
答案 2 :(得分:0)
您确定使用的是
吗?_viewYour.doSomething
不
_view.doSomething
我刚才犯了这个错误。