Разница между объектом Obj-C и экземпляром? - PullRequest
1 голос
/ 30 июня 2011

Я изучаю Objective-C и не совсем понимаю разницу между экземпляром и объектом. Они обычно используют оба термина. Кроме того, почему метод alloc применяется к классу, а метод init применяется к объекту?

1 Ответ

7 голосов
/ 30 июня 2011

Экземпляр такой же, как объект, поэтому оба термина используются и могут использоваться взаимозаменяемо - экземпляр NSString или NSString объект.

+alloc - это классметод, отвечающий за выделение памяти, необходимой для хранения нового экземпляра / объекта, и обнуление этой памяти.Он возвращает только что созданный экземпляр / объект.

-init, с другой стороны, отвечает за дальнейшую инициализацию этого нового экземпляра; например, 1 , присваивая значения по умолчанию переменным экземпляра.Поскольку -init работает с существующим экземпляром, это метод экземпляра.

1 В некоторых случаях -init может возвращать экземпляр, отличный от созданного +alloc.

...