分类里添加扩展
来源:4-2 分类相关面试问题-1

贴膜小哥
2019-08-07
#import "NSObject+A.h"
@interface NSObject ()
{
NSString *_inner;
}
@end
@implementation NSObject (A)
- (void)test {
_inner = @"123";
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"%@", self->_inner);
});
}
结果是报错:
Undefined symbols for architecture x86_64:
“OBJC_IVAR$_NSObject._inner”, referenced from:
-[NSObject(A) test] in NSObject+A.o
___19-[NSObject(A) test]_block_invoke in NSObject+A.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
扩展是宿主类的所以我在分类里添加扩展在分类里是可以直接使用的 可是直接使用编译期间就报错了 老师能帮忙解释一下吗?谢谢
写回答
1回答
-
于海
2019-09-01
详见课程中扩展描述,已说明不能为系统类添加扩展
00
相似问题