关于objc_getClass的困惑

时间:2014-11-07 02:00:15

标签: ios objective-c objective-c-runtime

在我的Xcode项目中,我为ios7和ios8.添加了相同的框架。我已将它们重命名为xxx-ios7.framework和xxx-ios8.framework。 我想使用objc_getClass(“someclass”)来获取运行时类。但是这两个框架具有相同的类。 我怎么知道我会上哪节课?

1 个答案:

答案 0 :(得分:1)

虽然这可能不是一个好的答案,但您可能希望使用Microsoft在其MFC类中使用的相同机制,即定义版本号。

从本质上讲,你会有一个方法或类似的方法:

- (NSString*)classVersionAsString;
- (NSInterger)classVersionAsNumber;

将为您返回有意义的版本信息。

如上面的注释中所述,您应该小心使用具有相同类名的多个框架,因为,加载器将选择与依赖模块或从属应用程序匹配链接器要求的第一个类。加载模块后,您获得的课程可能与您的预期不同。