Ошибка сборки 32-битного приложения OS X? - PullRequest
9 голосов
/ 18 августа 2011

Я работаю над своим первым приложением для Mac OS X.Мой проект был настроен с настройками по умолчанию XCode, и я не затрагивал никаких настроек сборки.При сборке для Mac 64-bit приложение работает нормально.Тем не менее, при сборке для Mac 32-битной, я получаю, казалось бы, произвольную ошибку, которая говорит:

Semantic issue: Synthesized property 'myProperty' must either be named the same as a compatible ivar or must explicitly name an ivar.

Какие вещи я могу проверить?

Ответы [ 2 ]

21 голосов
/ 18 августа 2011

Звучит так, как будто вы нашли ошибку, но я думаю, что смогу ответить на ваш вопрос на тот случай, если кто-то позже найдет ее.

Apple внесла много изменений в 64-разрядную среду выполнения Objective-C, чего они не могли сделать раньше, поскольку это нарушило бы двоичную совместимость. Одно из отличий состоит в том, что в 32-разрядных средах выполнения синтезированные свойства должны поддерживаться переменными экземпляра. На 64-битных во время выполнения синтезированных свойствах это необходимо, но они создаются автоматически для вас. По умолчанию имя переменной экземпляра должно совпадать с именем свойства.

Так что, если вам нужна поддержка 32 бит, убедитесь, что вы создали переменные экземпляра для всех ваших свойств. Если вы поддерживаете только 64-битную версию, вы все равно можете сделать это так, чтобы ваш код мог быть собран как для 32-битной, так и для 64-битной версии одновременно, но это не обязательно.

0 голосов
/ 31 августа 2017

Вы можете установить макрос препроцессора NS_BUILD_32_LIKE_64 в XCode для цели 32-битной сборки.Это избавит вас от необходимости поддерживать отдельный код для 32-битной и 64-битной версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...