体系结构 i386 的未定义符号 - 自定义类



我创建了一个非常简单的自定义类,实际上只是一个模型,用于保存有关NSURLConnections的一些数据,以便我可以跟踪它们。目的是拥有一个数组,一个 ConnectionInfo 对象的数组。

@interface ConnectionInfo : NSObject
@property NSString *connectionDescription;
@property int *campaignID;
@property int *requestType; //0 - Score, 1 - Image
@end

我没有费心把它放到它自己的文件中,因为它非常简单,所以它只是位于我的视图控制器的顶部。

无论如何,Xcode 不会给我任何问题,但是,一旦我想通过以下方式创建此类的实例

ConnectionInfo *thisConnection = [[ConnectionInfo alloc] init];

它抛出以下 2 个错误:

架构 i386 的未定义符号: "_OBJC_CLASS_$_ConnectionInfo",引用自: objc-class-ref in ServerTestViewController.o LD:找不到架构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我在 Stackoverflow 周围看到的所有内容都是关于人们对导入库有问题的,但这是我自己的自定义类。

您缺少该类的实现,请按如下方式创建一个

@implementation ConnectionInfo
@end

为什么需要这样做?

您之前所做的只是声明类接口。所有这些都是通知类(和编译器)的用户在实现中会发生什么。它不声明类的工作方式。没有实现,你就没有可用的类!

为什么实现为空?

您可能认为放入空白实现毫无意义。这将通知编译器如何创建对象。虽然您的实现什么都不做,但您继承自 NSObject ,这与对象创建有很大关系。此外,使用最新的 Xcode,您无需手动@synthesize属性,因此当您声明@implementation时,这些属性也会自动为您设置。

最新更新