2013-02-20 1 views
0

У меня есть вопрос об использовании extern и наследования. Я кодирую приложение iOS в Objective C, используя X-Code.Внешнее наследование дублирует ошибки символа, что происходит?

У меня есть два гипотетических классов В и С, которые, как наследуемые от класса А.

Теперь класс А импортирует класс под названием Ограничения в это заголовочный файл, как это: #import «Constraints.h». В заголовке .H объявлены различные значения extern NSInteger const VAR_NAME значения выше @interface Ограничения: NSObject, но ниже импорта. В реализации .M externs инициализируются, например, следующим образом: NSInteger const VAR_NAME = 1. Опять же, это помещается ниже импорта, но выше @implementation Constraints. Этот файл предназначен для хранения глобальных ограничений приложения.

Однако при построении XCode сообщает ошибку mach-o-linker для повторяющихся символов в классах B и C для каждой переменной, объявленной как extern в файлах Constraints.

То, что я сделал тогда, это удалить импорт класса Constraints из родительского класса A и вместо этого импортировать его непосредственно в классы B и C. Однако я получаю ту же проблему.

Я уже несколько часов бил головой о стол в этом месте, любая помощь будет принята с благодарностью.

ответ

1

Вы можете написать код, создающий ошибку? Это кажется мне правильным и обычно вызвано опечаткой. Я читал другие сообщения, в которых люди просто импортировали файл .m вместо файла .h случайно, что обычно вызывает эту ошибку.

+0

Спасибо за ответ, я попробую сделать небольшой пример и протестировать, так как код очень большой. –

+0

А у моего простого примера не было никаких проблем, поэтому моя модель того, как все должно работать, кажется правильным. Для дочерних классов также необходимо импортировать класс ограничений, поскольку это не унаследовано. –

+0

Я рад, что у вас это работает. Если бы я был полезным, upvotes всегда оценили! – JiuJitsuCoder

Смежные вопросы