1

我创建了一个静态链接库类型的新项目。

我已将代码(以前在应用程序中工作)移动到库中,将所有 xib 文件留在应用程序中。

我已经更改了导出目录并从派生数据文件夹中添加了库文件,以便它获取编译版本并链接到它。

我已将库添加到捆绑包中,并已使用 iPhone Explorer 验证它在应用程序中

我已经通过在身份检查器的自定义类字段中删除并选择自定义视图类型来验证 xib 文件识别新视图类型。

我已更改所有#import 命令以反映 <> VS "" 更改并已编译应用程序。

但是我的自定义类的任何方法都不能执行。并且 NSLog 报告该类是其基本对应物,而不是自定义派生类。

我不知所措,花了很长时间转换我必须在库中工作的所有代码。我希望有人可以帮助解决这个问题。

4

1 回答 1

2

在这个问题上,事实证明,Objective C 的编译器默认不加载库中的类别和自定义类。有两种方法可以克服这一点。

这是您的选择。

  1. 在将被调用以“激活”该类或类别的类别上创建一个激活类型方法。这需要在应用程序加载任何 nib 文件之前完成。而且好像有点屁股疼。然而,这就是我最初克服这个问题的方式。

  2. 添加链接器标志,告诉目标 C 在执行应用程序之前加载所有库并在库中附加任何和所有类别和类。(这需要在#import(ing) 正确位置的正确文件之上完成。我将在下面提供一个图形。并提供用于搜索目的的标志

在此处输入图像描述

-ObjC 是我添加的第一个,但 -all_load 确实成功了。

我希望其他人可以从这次经历中受益。

于 2012-07-06T19:36:34.463 回答