У меня есть вопрос об использовании 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. Однако я получаю ту же проблему.
Я уже несколько часов бил головой о стол в этом месте, любая помощь будет принята с благодарностью.
Спасибо за ответ, я попробую сделать небольшой пример и протестировать, так как код очень большой. –
А у моего простого примера не было никаких проблем, поэтому моя модель того, как все должно работать, кажется правильным. Для дочерних классов также необходимо импортировать класс ограничений, поскольку это не унаследовано. –
Я рад, что у вас это работает. Если бы я был полезным, upvotes всегда оценили! – JiuJitsuCoder