【发布时间】:2015-04-29 00:05:12
【问题描述】:
我有使用框架 A 和 B 的 iOS 应用程序。每个都需要 MyClaseName 类。
运行应用程序后,我在日志中有以下警告:
objc[2472]: MyClaseName 类在两者中都实现 /Users/myusername/Library/Developer/Xcode/DerivedData/workspace-amvqjwzykbswydebvpvdfbylgsck/Build/Products/Debug-iphonesimulator/A.framework/A 和 /Users/myusername/Library/Developer/Xcode/DerivedData/workspace-amvqjwzykbswydebvpvdfbylgsck/Build/Products/Debug-iphonesimulator/B.framework/B. 将使用两者之一。哪一个是未定义的。
我检查过类似的SO question,但不幸的是这不是我的情况。
那么,我该如何解决这个问题?
【问题讨论】:
-
我认为您可能需要重命名其中一个。
-
你应该重命名它们,在创建类时使用某种前缀非常重要。通常我使用我的初始 AF 和项目或框架的名称,例如 AFPhotogunViewController
-
@Yuchen,这个类的实例需要是整个项目的实例。在重命名的情况下,我会有不同的实例。
-
@IAmDav,这听起来很像
C++中的钻石继承 问题。不一样,但类似的想法。不确定您的问题是否真的有解决方案。也许你仍然需要重构你的代码结构。 -
嗨@Yuchen,实际上问题来自iOS框架。我的 C++ 类加载了两次。我认为这个 Xcode 需要引入新的选项,以避免这种情况。
标签: c++ ios linker ios-frameworks