1

我创建了一个非常简单的自定义类,实际上只是一个模型,用于保存一些有关 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];

它引发以下两个错误:

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

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

4

1 回答 1

4

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

@implementation ConnectionInfo
@end

为什么需要这个?

您之前所做的只是声明类接口。所有这些都是通知类的用户(和编译器)在实现中期望什么。它没有声明类是如何工作的。没有实现,您就没有要使用的类!

为什么实现是空的?

你可能认为把一个空白的实现放进去是没有意义的。这将通知编译器如何创建对象。虽然您的实现什么都不做,但您继承自NSObject,这与对象创建有很大关系。此外,使用最新的 Xcode,您无需手动@synthesize设置属性,因此在您声明@implementation.

于 2013-01-28T11:00:31.717 回答