У меня есть проект, который использует платформу 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 .