Последние изменения в Objective-C времени выполнения / код Xcode 4.2 - PullRequest
1 голос
/ 21 ноября 2011

Я только начал изучать Obj-C, и я немного запутался. Видео, которые я смотрел на Lynda.com, были созданы с помощью Xcode 4, но есть так много различий, что мне трудно поверить, что все они появились в двухточечных выпусках. Например:

В видео вы можете написать:

@property NSString * myString

И было бы хорошо, но теперь в 4.2 выдает ошибку, если вы не напишите что-то вроде:

@property (nonatomic, retain) NSString * myString

Кроме того, по умолчанию в коде реализации больше нет методов init или dealloc, и NSAutoReleasePool реализован совершенно по-другому. Что дает?

Ответы [ 4 ]

2 голосов
/ 02 декабря 2011

Хотя я не могу гарантировать, что этот список является исчерпывающим, в сети вы найдете следующие различия:

  • Objective-C 1.0 или 2.0
  • Старый или современныйвремя выполнения
  • Ручной или автоматический подсчет ссылок

Мой личный взгляд на основные отличия:

  • Objective-C 2.0 принес свойства и синтезированные средства доступа среди другихвещи
  • Современная среда выполнения имеет другой способ организации переменных экземпляра (не хрупкие переменные экземпляра), но вы, вероятно, не заметите в повседневной работе по разработке
  • Современная среда выполнениятакже позволяет использовать 64-разрядные приложения, если ОС поддерживает это
  • Автоматический подсчет ссылок позволяет избавиться от сохранения / освобождения кода при скромной стоимости соблюдения соглашений о кодировании и именовании

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

1 голос
/ 29 ноября 2011

При создании проекта
ПРОВЕРЬТЕ Использование Автоматический подсчет ссылок . enter image description here

1 голос
/ 01 декабря 2011

При создании проекта вы можете выбрать опцию «Использовать автоматический подсчет ссылок».Если вы проверите это, то не будет никаких методов init или dealloc, потому что Xcode автоматически выполняет подсчет ссылок.

1 голос
/ 21 ноября 2011

Если вы создадите проект с параметром «Автоматический подсчет ссылок» «вкл.», Тогда не будет никаких методов init или dealoc.

...