Это все для сборки мусора в Objective-C? - PullRequest
2 голосов
/ 16 марта 2009

Привет, я только что взял Obj-C и очень не люблю его ручное управление памятью.

Я решил пойти с его сборкой мусора, добавив

objc_startCollectorThread();//garbage collection

в моем Main () и измените значение сборки мусора на [-fobjc-gc]

Так это все, что мне нужно ? Таким образом, я могу программировать "свободно", как я делаю на Java / Python и т. Д.?

Ответы [ 4 ]

4 голосов
/ 16 марта 2009

Да, вы правы, но в случае, если какой-нибудь программист iPhone придет и подумает «о, сладко!», Обратите внимание, что iPhone еще не поддерживает сборку мусора (никогда?). Так что это единственное решение для MacOS.

2 голосов
/ 16 марта 2009

Как уже говорили другие, в iPhone нет сборки мусора.

Если вы пишете приложение «Какао для рабочего стола», все, что вам нужно, это флаг -fobjc-gc-only, без явной функции запуска objc_startCollectorThread().

2 голосов
/ 16 марта 2009

Обратите внимание, что -fobjc-gc означает, что вы все еще используете retain / release (при написании Framework / библиотеки); вы, вероятно, хотите -fobjc-gc-only, если хотите полностью избавиться от кода подсчета ссылок.

0 голосов
/ 16 марта 2009

В основном да. Это описано в документации Apple . Вам также могут понадобиться случайные звонки на

objc_clear_stack

Но это не является обязательным, чтобы обеспечить минимальное время жизни сохраненных объектов в стеке.

...