2014-11-07 277 views
1

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

+1

在单个应用程序中有两个具有相同名称的不同类是不好的。你有时可以逃避,但是当你不怀疑它时,它会让你陷入$ $$。 – 2014-11-07 02:15:31

回答

1

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

从本质上讲,你将有一个方法,或方法,如:

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

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

正如上面注释中指出的那样,您应该小心使用多个具有相同类名的框架,因为加载器将选择与从属模块或从属应用程序匹配链接器要求的第一个类。当模块被加载时,你得到的类可能不是你所期望的。