Что делает флаг компоновщика -ObjC?

136

У меня есть приложение, которое работает с и без флага компоновщика. Однако, без флага компоновщика, я получаю совсем другое поведение при добавлении данных в представление.

bsarrazin
источник
1
bensarz, вы получаете другое поведение без флага компоновщика ... Что это значит ?? Разные как?
Адиль Хуссейн

Ответы:

158

Этот флаг заставляет компоновщик загружать каждый объектный файл в библиотеке, который определяет класс или категорию Objective-C. Хотя этот параметр обычно приводит к увеличению размера исполняемого файла (из-за загрузки в приложение дополнительного объектного кода), он позволяет успешно создавать эффективные статические библиотеки Objective-C, которые содержат категории в существующих классах.

Из этого технического Q & A

Серджио
источник
2
Большой! Спасибо. Это связано с тем, что мы используем GCC 4.2 в качестве компилятора? Решит ли проблема использование LLVM GCC 4.2 или LLVM Compiler 2.0? Или я смешиваю вещи, которые не следует смешивать?
Бсарразин
Я думаю, что поведение одинаково с обоими компиляторами (кроме того, я не знаю, есть ли два разных компоновщика) ...
Серхио
4
Значит ли это, что вам никогда не понадобится -ObjCничего, кроме библиотеки / SDK? Т.е. вам никогда не нужно использовать его в реальных целях приложения?
Роберт
2
Нет, это означает, что вам нужен -ObjC в любом проекте, реализующем библиотеку, в которой есть категория или встроенный фреймворк
arc4randall
Просто выяснил это трудным путем!
Александр G