Core Plot и Xcode 5.1 — Как преобразовать Core Plot в ARC?

Я только что установил Xcode 5.1 и обнаружил, что он определенно требует, чтобы проекты использовали ARC. я получил

error: garbage collection is no longer supported

при попытке скомпилировать Core Plot (версия 1.4). Из любопытства я сказал Xcode преобразовать Core Plot в ARC. Но это не удается с

ARC forbids Objective-C objects in struct

в файле CPTPlatformSpecificFunctions.m. Я не хочу погружаться в Core Plot и что-то ломать, пытаясь исправить эту или подобные ошибки. Есть ли параметр компилятора, который я пропустил? Или скоро будет версия Core Plot, использующая ARC? Спасибо, Дирк


person Dirk    schedule 11.03.2014    source источник


Ответы (2)


Xcode 5.1 не требует от проектов использования ARC, он просто окончательно отказывается от поддержки сборки мусора. Core Plot никогда не был фреймворком строгой сборки мусора, но он поддерживал сборку для сборки мусора.

Вы можете щелкнуть параметр «Не сейчас», когда появится это диалоговое окно при открытии проекта Core Plot, а затем перейти к настройкам сборки проекта. Очистите или удалите параметр GCC_ENABLE_OBJC_GC в пользовательских настройках в нижней части проекта, и проект будет прекрасно строиться как цель с подсчетом ссылок вручную. Это прекрасно можно использовать в приложениях ARC или не-ARC.

person Brad Larson    schedule 11.03.2014

Если вы импортируете статическую библиотеку, вы можете использовать основной график в проектах ARC. Сейчас я делаю это в своем приложении ARC. Вот ссылка на инструкцию как это сделать:

http://code.google.com/p/core-plot/wiki/UsingCorePlotInApplications

Все, что вам нужно, это библиотека "...core-plot-master/build/Debug-iphoneos/", где я ее нашел. Затем импортируйте заголовки, которые можно найти в папке «….core-plot-master/framework/source». Затем следуйте инструкциям.

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

person weezma2004    schedule 12.03.2014
comment
Я не понимаю, почему бы и нет. Библиотека просто будет в другой папке. Я не разрабатывал никаких приложений для OSX, поэтому я не уверен, какое будет имя папки. - person weezma2004; 06.05.2014
comment
Я пробовал.. но когда я включаю "corePlot.h", выдает 15 ошибок: о ; в конце объявления ... Я открыл файлы, там ; во всех строках с ошибками :-/ - person Roma-MT; 06.05.2014
comment
Основываясь на примере проекта Plot_Gallery для Mac OS, вы, вероятно, захотите сделать: #import ‹CorePlot/CorePlot.h› Если это не проблема... Я не совсем уверен, что будет происходить. Может быть, разница целевых платформ? - person weezma2004; 06.05.2014
comment
Я его скомпилировал.. но библиотеки нет.. после компиляции остался только framewoks.h. внутри фреймворков есть ссылки на шапки и т.д но библиотеки нет...я включил фреймворки..потом выдает ошибки про ; ‹Может баг?› - person Roma-MT; 08.05.2014
comment
После того, как вы скомпилируете версию примера проекта для Mac, перейдите в папку: projectFolder/Binaries/MacOS/, а затем скопируйте CorePlot.framework в свой проект. Затем вы сможете импортировать ‹CorePlot/CorePlot.h› в нужные вам файлы. Я не тестировал его, потому что у меня нет собственного проекта для MacOS. Я просто исхожу из того, что вижу здесь: github.com/core-plot/core-plot/wiki/ - person weezma2004; 09.05.2014
comment
Я пробовал. (Я могу import <CorePlot\CorePlot.h>, но он генерирует ужасные ошибки :( ... Мне не удалось выполнить этап сборки, я не могу найти цели приложения в IDE xcode, однако я не думаю, что это проблема, потому что я скомпилировал его. не знаю, может быть, вы можете сказать мне, где находятся цели приложения в xcode 5.1? - person Roma-MT; 10.05.2014