iOS SDK:重命名很多类

Ran*_*han 5 xcode objective-c static-libraries ios

我正在开发一个集成了其他SDK的iOS SDK(例如Facebook SDK 3.5).为了防止冲突并允许我的客户也导入这些SDK,我想重命名我的代码中的所有类/枚举(例如,将FBSession重命名为RDFBSession等).

有没有一种简单的方法可以做到这一点,而不是逐类和使用Xcode的重命名功能?

jus*_*tin 3

Xcode 还提供文本搜索和替换。这将比单独的重构更快,但最终自动化程度较低。您可以通过首先将项目最小化到相关依赖项/源(如果可能)来加快逐步重构的速度。

但是,重命名库中的声明不会更改其关联二进制文件的符号名称。如果它与二进制文件一起分发,则重命名只会导致链接器错误或(在某些情况下)运行时错误。

如果您需要使用您的客户也可能使用的第 3 方库,最好的想法是简单地通知他们需要将该库与其应用程序链接起来,然后发布当前版本支持的版本,以便他们知道他们有一些如果他们在某些库上走得太远,则需要进行额外的测试。