【问题标题】:How to have 2 objective C class with same name in a same project? [duplicate]如何在同一个项目中拥有 2 个同名的目标 C 类? [复制]
【发布时间】:2011-08-02 00:34:52
【问题描述】:

可能重复:
What is the best way to solve an Objective-C namespace collision?

我在一个应用程序中使用了 2 个不同用途的开源项目 --- 问题是两个项目具有相同的类名和不同的实现。

根据我的理解,目标 C 没有命名空间选项来处理范围 --- 到目前为止,我正在重命名该类之一及其用法以使其在我的项目中工作。

是否有任何替代解决方案然后重命名?我觉得目标 C 缺少命名空间。

【问题讨论】:

  • 他们确实使用它,例如。 等。虽然不知道如何实现它:S.
  • @Sailesh 这与命名空间无关。这只是文件的组织。
  • 分享导致冲突的类名以及两个框架的名称可能是有益的。

标签: objective-c cocoa


【解决方案1】:

重命名是正确的方法。 Apple recommends to prefix your classes with some uppercase letters 是有原因的。这应该可以防止这种情况发生。类扩展中的方法名称或“私有”方法相同。

【讨论】:

  • 幸运的是,如果您添加一个库并使用 Xcode 的重构来重命名有问题的类,您不太可能犯错误。然后,显然,添加另一个库。
  • rename 是我现在使用的方式 --- 在我的情况下,重命名的硬路径是 - 如果我必须在其他日子使用最新版本的开源,我必须重命名它再次...这就是为什么我要寻找更好的解决方案然后重命名。
  • 说服开源项目为他们的类添加前缀,你可能不是唯一遇到这个问题的人——现在或以后。您可能会使用#define 魔法在一个小框架中重命名文件,只需进行最少的更改。
  • 由于任何体面的 Objective-C 框架都已经使用了经过深思熟虑的前缀,因此名称冲突很少见。不过,不幸的是,正如您已经发现的那样,这并非不可能。
  • @jlehr:我错过了这里的框架名称吗?
猜你喜欢
  • 2013-02-04
  • 1970-01-01
  • 2023-03-11
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
相关资源
最近更新 更多