我创建了一个静态链接库类型的新项目。
我已将代码(之前在应用程序中工作)移到了库中,并将所有xib文件保留在应用程序中。
我更改了导出目录并从派生数据文件夹中添加了库文件,因此它获取了编译版本并链接到它。
我已将该库添加到该捆绑包中,并使用iPhone Explorer验证它是否在应用程序中
我已通过在身份检查器的自定义类字段中删除并选择自定义视图类型来验证xib文件是否识别了新视图类型。
我更改了所有#import命令以反映<> VS“”改变了并且已经让应用程序编译。
但是我的自定义类的方法都不能执行。并且NSLog报告该类是它的基础对应物而不是自定义派生类。
我很茫然,并且花了很长时间来转换我在库中工作的所有代码。我希望有人可以帮忙解决这个问题。
答案 0 :(得分:2)
在这个问题上,事实证明,Objective C的编译器默认情况下不会加载库中的类别和自定义类。有两种方法可以解决这个问题。
以下是您的选择。
在将要调用“激活”该类或类别的类别上创建激活类型方法。这需要在应用程序加载任何nib文件之前完成。而且看起来有点痛苦。然而,这是我最初克服这个问题的方式。
添加链接器标志,指示目标C在执行应用程序之前加载所有库并附加库中的任何和所有类别和类。 (这需要在#import(正确)文件的正确位置之上完成。我将在下面提供一个图片。并提供用于搜索目的的标志
-ObjC是我添加的第一个,但是-all_load确实做到了。
我希望其他人可以从这种经历中受益。