xcode 未定义符号:“_OBJC_CLASS_$错误

j7dteeu8  于 2023-05-01  发布在  其他
关注(0)|答案(4)|浏览(215)

我已经看了无数关于这个错误的帖子:

Undefined symbols:
"_OBJC_CLASS_$_BoxView", referenced from:
  objc-class-ref-to-BoxView in ViewMovingViewController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

BoxViewUIView的一个子类,UIKit框架已经包含在内。BoxView.h已导入ViewController中。
ViewController包含以下代码:

-(void) addBoxViewAtLocation:(CGPoint)point {
    CGRect rect;  
    rect.origin.x = point.x;  
    rect.origin.y = point.y;  
    rect.size.width = 80;  
    rect.size.width = 40;  
    BoxView *newView = [[BoxView alloc] initWithFrame:rect];  
    newView.backgroundColor = [UIColor yellowColor];  
    [mainView addSubview:newView];  
}

BoxView包含以下代码:

- (id)initWithFrame:(CGRect)frame {     
    self = [super initWithFrame:frame];  
    if (self) {  
        // no further initialization  
    }  
    return self; 
}

这是导致错误的行,来自上面的代码:

BoxView *newView = [[BoxView alloc] initWithFrame:rect];

当我在该行中将BoxView更改为UIView时,错误消失了。有谁知道我这里需要改什么吗?我看过很多关于这个的帖子,但大多数答案都说这是链接相关的,但我试过勾选和取消勾选某些框,但没有成功。我想知道这个错误是否在我的代码中?任何建议将不胜感激!

9rygscc1

9rygscc11#

通常,当BoxView的代码没有正确编译到目标中时,就会发生这种情况。

您需要确保您正在构建的目标在BoxView.m实现文件中选中了相应的复选框。你的问题表明你已经尝试过了,但这里有一个截图(来自Xcode 4)只是为了清楚起见。
一个“清洁和建设”从来没有伤害,无论是。

rqmkfv5c

rqmkfv5c2#

我只想补充一点,本·莫舍的回答是完全正确的。但还有另一种方法可以在目标设置中包含要构建的文件。

zpqajqem

zpqajqem3#

新增场景

如果您的项目有模块依赖项(框架),请在生成主项目之前重新生成它们。

ifmq2ha2

ifmq2ha24#

我也遇到过类似的问题。在我的情况下,这是一个由LFS引起的问题。
1.打开终端应用程序。
1.安装Git-LFS。
brew install git-lfs

  1. LFS安装完成后,输入此命令进行初始化。
    git-lfs安装
    4-1.(如果您使用CocoaPods)移动到项目文件夹,然后重新安装Pods(remove -〉install)。
    4-2.(如果您不使用CocoaPods)删除克隆,然后重新下载。

相关问题