为什么在两个不同的iOS框架中相同的类名没有链接器错误?

为什么在两个不同的iOS框架中相同的类名没有链接器错误?,ios,frameworks,linker-errors,Ios,Frameworks,Linker Errors,我在示例应用程序MyApp中导入了两个不同的Objective-C框架FrameworkA和FrameworkB,这两个框架定义了相同的Person类 如果您运行MyApp,它会在控制台上向您发出以下警告 objc[27167]: Class Person is implemented in both /private/var/containers/Bundle/Application/9762DB63-21E9-4592-B875- 6DF6F373FFD0/MyApp.app/Fra

我在示例应用程序
MyApp
中导入了两个不同的Objective-C框架
FrameworkA
FrameworkB
,这两个框架定义了相同的
Person

如果您运行
MyApp
,它会在控制台上向您发出以下警告

objc[27167]: Class Person is implemented in both
    /private/var/containers/Bundle/Application/9762DB63-21E9-4592-B875-
6DF6F373FFD0/MyApp.app/Frameworks/FrameworkA.framework/FrameworkA 
(0x100b18100) and 
    /private/var/containers/Bundle/Application/9762DB63-21E9-
4592-B875-6DF6F373FFD0/MyApp.app/Frameworks/FrameworkB.framework/FrameworkB
 (0x100b30100). 
One of the two will be used. Which one is undefined.
当(1)在两个不同的iOS框架中有相同的类名时,为什么只会收到警告而不是链接器错误? 我知道(2)由于名称空间问题导致链接器错误,在一个框架中有重复的类无法编译


据我所知,对于这两种情况,链接器都将所有源代码和库/框架链接到一个可执行文件。但是为什么链接器不为案例(1)抛出一个错误呢?

我同意链接器应该有一个bug。我想你需要在Swift中打开一个bug。请查看该链接,希望有帮助,解释你的问题:@destroif我无法看到该链接的预览。你介意解释一下吗?@SachinVas很抱歉搞混了。忘了提到这是在Objective-C中构建的。