是否可以将对象/类添加到静态库中,以便在库弱链接时将它们排除?我尝试向我的obj c类添加属性,将它们标记为“weak_import”,但编译器说它未定义。
答案 0 :(得分:4)
是的,有可能。不幸的是,虽然运行时和链接器支持它,但编译器不支持,这意味着您需要为头中的类声明程序集存根。特别是,如果你想让MyClass变弱,你可以在MyClass.h
中执行此操作:
asm(".weak_reference _OBJC_CLASS_$_MyClass");
asm(".weak_reference _OBJC_METACLASS_$_MyClass");
@interface MyClass
@end
这仅适用于iOS 3.1及更高版本。有关详细信息,请参阅this博文。