Разница между объектом Obj-C и экземпляром?

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


person Ben    schedule 29.06.2011    source источник
comment
Связанные: методы класса против методов экземпляра   -  person PengOne    schedule 30.06.2011


Ответы (1)


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

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

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

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

person Community    schedule 29.06.2011
comment
Обратите внимание, что класс также является экземпляром своего метакласса, а метаклассы также являются объектами. - person ; 30.06.2011