Ошибка сборки xcode: дублированный символ, когда в моем проекте два файла с одинаковым именем - PullRequest
0 голосов
/ 13 марта 2012

В моем проекте есть файл с именем "Reachability.h" (он очень популярен, его используют многие люди)

Сегодня я добавляю в свой проект фреймворк для других.Я думаю, что у фреймворка есть тот же файл "Reachability.h".

Итак, есть конфликт.

Это потому, что в C нет пространства имен?Как избежать этой проблемы?

А вот журнал:

ld: duplicate symbol _OBJC_IVAR_$_Reachability.reachabilityRef in /Volumes/Data/Project/ios/FreeMaster/FreeMaster/src/ThirdParty/Lmmob/LmmobAdWallSDK.framework/LmmobAdWallSDK(Reachability.o) and /Users/lxp/Library/Developer/Xcode/DerivedData/FreeMaster-hdzirfpzangiuqaavvqkrzlccrku/Build/Intermediates/FreeMaster.build/Debug-iphonesimulator/FreeMaster.build/Objects-normal/i386/Reachability.o for architecture i386

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

Правильно, в Objective-C нет пространства имен, эту проблему часто можно обойти, используя префиксные классы.Это часто также проблема, когда вы получаете «незаслуженные» отказы от Apple за использование закрытого API, который вы не используете, например, класс с именем BaseResponse вызвал у нас проблемы.

Apple оставляет за собой право иметь префиксные классы, нов этом случае вы должны либо префиксировать его, либо переименовать класс в другое.

1 голос
/ 13 марта 2012

В объекте -c нет никаких имен или пакетов.

Как правило, если вы принадлежите к тому же классу, что и в библиотеке, вы можете удалить свой класс. Импортируйте <yourFramework/Reachability.h> везде, где вы используете достижимость в вашем коде.

1 голос
/ 13 марта 2012

Сохранение одной копии файлов Reachability (.h, .m) в вашем проекте и удаление лишних файлов. Это решит проблему.

Если вы хотите сохранить дополнительную копию, вы можете создать новую группу и переместить файлы Reachability в эту папку, как показано на снимке экрана ниже:

enter image description here

В моем искателе мои файлы размещены так:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...