创建一个可以弱链接的静态库

时间:2010-08-11 15:33:56

标签: iphone objective-c xcode

是否可以将对象/类添加到静态库中,以便在库弱链接时将它们排除?我尝试向我的obj c类添加属性,将它们标记为“weak_import”,但编译器说它未定义。

1 个答案:

答案 0 :(得分:4)

是的,有可能。不幸的是,虽然运行时和链接器支持它,但编译器不支持,这意味着您需要为头中的类声明程序集存根。特别是,如果你想让MyClass变弱,你可以在MyClass.h中执行此操作:

asm(".weak_reference _OBJC_CLASS_$_MyClass");
asm(".weak_reference _OBJC_METACLASS_$_MyClass");

@interface MyClass

@end

这仅适用于iOS 3.1及更高版本。有关详细信息,请参阅this博文。