我有一个使用 Core Telephony 框架的项目。最近我的代码停止在一个CTCarrier
类别上工作,链接器抱怨它找不到这个CTCarrier
类:
Undefined symbols:
"_OBJC_CLASS_$_CTCarrier", referenced from:
l_OBJC_$_CATEGORY_CTCarrier_$_Foo in CTTests.o
ld: symbol(s) not found
这是触发上述错误的示例代码:
#import <CoreTelephony/CTCarrier.h>
@interface CTCarrier (Foo)
- (void) doFoo;
@end
@implementation CTCarrier (Foo)
- (void) doFoo {}
@end
如果我将类别更改为类扩展,代码会突然生成:
#import <CoreTelephony/CTCarrier.h>
@interface CTCarrier ()
- (void) doFoo;
@end
@implementation CTCarrier
- (void) doFoo {}
@end
这是怎么回事?GitHub 上的示例代码。