据我所知,有两种情况会导致以下错误:
ld: warning: instance method 'resetAudioSystem' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+AudioSnoop.o) conflicts with same method from another category
ld: warning: instance method 'attachAudioSnoopBlock:' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+AudioSnoop.o) conflicts with same method from another category
ld: warning: instance method 'setVideoSnoopDelegate:' in category from /opentok-ios-sdk/Opentok.framework/Opentok(OTPublisher+VideoSnoop.o) conflicts with same method from another category
可能性 1: 类别实例方法被声明了两次。 (此处描述:SO)
但是,当我搜索 3 个实例方法中的任何一个(在 Xcode 或 Grep 中)时,我没有发现它被声明了两次。
可能性 2: 意外导入 .m 文件。 (此处描述:SO)
但是,我检查了所有的导入,并且在整个项目中我只导入了一次框架。此外,只在构建阶段出现一次。
我的程序运行没有崩溃,大概是因为使用了最后添加的类别定义并且它恰好是正确的。 ( Source )
问题 1:有没有办法在添加之前告诉这两个类别位于何处?
问题 2:关于如何解决这个问题还有其他想法吗?
注意:Opentok 框架是二进制的
发生在:
xcode 4.6 & xcode 5
iOS6 和 iOS7
最佳答案
我有这个警告是因为我不小心导入了一个类别的实现文件而不是它的头文件。所以:
错误:#import 'MyClass+MyCategory.m'
右: #import 'MyClass+MyCategory.h'
关于ios - 类别冲突 : instance method in category from conflicts with same method from another category,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19921675/