Я изучаю Objective-C и не совсем понимаю разницу между экземпляром и объектом. Они обычно используют оба термина. Кроме того, почему метод alloc применяется к классу, а метод init — к объекту?
Разница между объектом Obj-C и экземпляром?
comment
Связанные: методы класса против методов экземпляра
- person PengOne   schedule 30.06.2011
Ответы (1)
Экземпляр — это то же самое, что и объект, поэтому оба термина используются и могут использоваться взаимозаменяемо — экземпляр объекта NSString
или объект NSString
.
+alloc
— это метод класса, отвечающий за выделение памяти, необходимой для хранения нового экземпляра/объекта, и обнуление этой памяти. Он возвращает вновь созданный экземпляр/объект.
-init
, с другой стороны, отвечает за дальнейшую инициализацию этого нового экземпляра,1 например, присвоение значений по умолчанию переменным экземпляра. Поскольку -init
работает с существующим экземпляром, это метод экземпляра.
1В некоторых случаях -init
может возвращать экземпляр, отличный от созданного +alloc
.
person
Community
schedule
29.06.2011
Обратите внимание, что класс также является экземпляром своего метакласса, а метаклассы также являются объектами.
- person ; 30.06.2011