【问题标题】:Importing project class in static library iOS在静态库 iOS 中导入项目类
【发布时间】:2013-08-14 23:24:48
【问题描述】:

我在一个工作区中有一个静态库项目和一个 iOS 项目。静态库中有一个类FCPlayerData。我在 iOS 项目中将FCPlayerData 子类化为PlayerData

问题:

我需要静态库来引用 iOS 项目中的 PlayerData(子类),但它无法识别 PlayerData 的任何属性,并且当 CMD 单击时,显示“未找到符号”。如何将 iOS 项目中的子类导入静态库?

提前致谢。

【问题讨论】:

    标签: ios objective-c class import static-libraries


    【解决方案1】:

    我已经查看了答案,但是,在我的情况下,一个类别不适合。

    我找到了解决办法:

    在静态库中,我在 FCReferences 类中创建了一个属性,如下所示:@property(strong, nonatomic) id playerData;。现在,在静态库中,我只需要访问FCPlayerData 的核心属性,所以要访问它们,我使用((FCPlayerData*)playerData).myProperty 进行转换。在iOS项目中,我需要访问子类的附加属性,所以我将其转换为((PlayerData *)playerData).additionalProperty

    注意:PlayerDataFCPlayerData 的子类。

    【讨论】:

      【解决方案2】:

      如果FCPlayerDataPlayerData 的子类,则传递FCPlayerData 类型的实例是安全的。

      或者您可以将子类的头文件和实现文件添加到项目中,但这会导致您的项目和静态库之间存在交叉依赖关系。

      【讨论】:

        【解决方案3】:

        如果您只需要向 FCPlayerData 添加几个方法,您可以使用类别将这些方法直接添加到 FCPlayerData。 在此处查看有关类别的更多信息:http://krodev.wordpress.com/2012/09/29/objective-c-categories/ 或此处http://cupsofcocoa.com/2011/03/27/objective-c-lesson-8-categories/

        【讨论】:

        • 我需要扩展 NSCoding 的编码和解码方法并添加更多属性。该对象主要用于存储数据。
        猜你喜欢
        • 1970-01-01
        • 2020-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        • 2011-09-01
        • 1970-01-01
        相关资源
        最近更新 更多