2014-11-28 6 views
3

Я видел ответы на конкретный вопрос. Большинство ответов с просьбой включить «-fno-objc-arc».Как использовать рамки без ARC в приложении ARC iOS

Позвольте мне попытаться объяснить проблему.

У меня есть рамки «MobileCommunicationLibrary.framework», который использует много, не ARC вещи, как 1) класс, который подкласс NSAutoReleasePool 2) использует сохранить, релиз

Эта структура имеет headerfile «MobileCommunicationLibrary.h», который мне нужен для импорта в приложение ARC и множество других заголовочных файлов, которые имеют значение MobileCommunicationLibrary.h, такие как «VNSAutoReleasePool».

Теперь я разрабатываю приложение iOS «TestIQLNative». У этого есть класс «AppDelegate.h» и «AppDelegate.m», который использует ARC-материал, такой как слабое свойство и синтезирующий его. Этот класс должен использовать компиляцию ARC или флаг компилятора должен быть «-fobjc-arc»

Кроме того, мне нужно импортировать <MobileCommunicationLibrary/MobileCommunicationLibrary.h> в AppDelegate.h для использования методов, предоставляемых каркасом.

При импорте я получаю много ошибок, связанных с сохранением, выпуском, NSAutoReleasePool и т. Д., Поскольку они не являются ARC.

Я бы не смог поместить «-fno-objc-arc» для AppDelegate.m, поскольку это дало бы ошибку, жалуясь на синтез слабого свойства, разрешенного только в ARC.

Может кто-нибудь помочь?

< ошибки и моя фаза сборки >

Error and my compile source screenshot

< Одной из ошибок в заголовочном файле, который использует не код ARC в заголовочных файлах >

One of the errors in the header file which uses non ARC code in header files

< Framework заголовок файлов и включая один заголовочный файл в Appdelegate.h >

Framework header files and including one header file in Appdelegate.h

< файл Framework Заголовок требует применения >

Framework Header file required by application

+0

Показать ошибки и код, который вызывает их. Файлы заголовков не должны иметь ничего, что невозможно скомпилировать с ARC или без него. Например, вы не знаете, создан ли Foundation или UIKit с ARC или без него. Со временем это почти наверняка изменилось. Но это не создает проблем. И это тоже. –

+0

@KenThomases Я добавил несколько скриншотов. Вы можете просмотреть его? Я не должен редактировать файлы заголовков фреймворка –

+0

Просто выбросьте это ... почему бы не использовать инструмент автоматического рефакторинга для преобразования вашей библиотеки без ARC в ARC? –

ответ

2

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

  1. В пределах Xcode выберите свой проект в разделе [ЦЕЛИ].
  2. Выберите вкладку [Сборка фаз].
  3. Найдите файлы заголовков/классов библиотеки в разделе «Скомпилировать источники».
  4. Добавьте к нему флаг компилятора.

Надеюсь, это поможет.

+0

Я добавил несколько скриншотов. Вы можете просмотреть его? Я не должен редактировать файлы заголовков рамки –

+0

Мои рамки находятся в Link Binary с библиотеками. Его нет в источниках компиляции. –

+0

@chris_sencha Можете ли вы вручную добавить заголовочный файл к [компиляции источников] с флагом? – ninehundredt

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