9

фона:Развертывание на OS X 10.6 и «-fobj-дуговой не поддерживается на платформах с использованием унаследованного выполнения»

Я строю приложение для OS X с целью развертывания 10.6. Я полностью не конвертировал свое приложение в ARC, но добавляю несколько новых классов, которые выиграют от ARC, поэтому я установил флаг компилятора для этих классов.

Компиляция обрывается для Универсальный 32/64-битный Intel архитектуры, с ошибкой -fobj-дуга не поддерживается на платформах с использованием унаследованного выполнения.

Здание для 64-битного успеха.

Я не хорошо разбираюсь в архитектуре низкого уровня. Мой вопрос: каков эффект построения только для 64-битной Intel? Это предотвращает запуск приложения на 10,6 полностью? Или только некоторые машины, работающие на 10,6?

+2

Насколько мне известно, последний Mac с 32-битным процессором был Mac mini в сентябре 2006 года, поэтому, если вы используете что-то более недавнее, у вас нет никаких последствий. –

ответ

11

32-разрядная среда выполнения Objective-C OS X довольно старая. Apple обновила среду выполнения, когда переместилась на 64-разрядную версию, но не сильно повлияла на 32-разрядную среду выполнения.

Что касается построения только для 64-бит: у большинства компьютеров Mac сейчас есть 64-разрядные процессоры. Однако 10.6 поддерживает также 32-разрядные компьютеры: вы будете оставить этих пользователей в пыли.

I have created a header, который поможет с переходом на ARC, поскольку вы можете настроить ARC на 64-битное оборудование, а не на 32-разрядное оборудование, и оба будут работать. Тем не менее, это действительно побеждает цель ARC, так как вам все равно нужно будет сохранить и освободить, они будут просто закомментированы при создании кода ARC.

+1

Где мы можем найти этот файл заголовка, который поможет с переходом на ARC? – thejinx0r