如何在Static lib中检查类是否可用?

时间:2015-01-22 13:30:59

标签: ios objective-c xcode static-libraries

我会尝试解释我的问题。

我正在创建两个libs home.a& room.a独立。从home lib我调用了我在room.a中实现的功能。

我想在一个项目中使用这两个libs,情况是我想保留room.a作为可选项。如果我不在项目中添加room.a,我就无法构建项目。

错误是:

Undefined symbols for architecture
  "_RoomViewController", referenced from:
  -[ParentViewController openView:] in home.a

此处RoomViewController来自room.a& amp; ParentViewController来自home.a

我想在代码home.a中添加条件以检查RoomViewController是否存在然后创建RoomViewController的对象。

请建议我这样做的方法。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您希望项目编译没有错误,则需要添加一个声明RoomViewController类的头文件。例如,写一个RoomViewController + Private.h文件。

@interface RoomViewController: UIViewController
@end
@interface RoomViewController()
//List of methods you want to use
- (void)methodA;
- (void)methodB;
@end

要检查您是否在运行时链接了库room.a,您需要执行以下操作:

if ([RoomViewController class]) {
    // class exists
    RoomViewController *instance = [[RoomViewController alloc] init];
} else {
    // class doesn't exist
}