2011-06-29 87 views
1

我在學習Objective-C,我並不真正瞭解實例和對象之間的區別。他們通常使用這兩個術語。另外,爲什麼將alloc方法應用於該類,並將init方法應用於該對象?Obj-C對象和實例之間的區別?

+0

相關:[類方法vs實例方法](http://stackoverflow.com/questions/2032538/i-need-a-good-analogy-to-make-sense-of-class-methods-vs-實例方法) – PengOne

回答

7

一個實例與一個對象相同,因此爲什麼兩個術語都被使用並且可以互換使用 - 一個NSStringNSString對象的實例。

+alloc是一個類方法,負責分配存儲新實例/對象所需的內存,並清零該內存。它返回一個新創建的實例/對象。另一方面,

-init負責進一步初始化該新實例;例如,將默認值分配給實例變量。由於-init在現有實例上運行,因此它是一種實例方法。

在某些情況下,-init可能會返回與+alloc創建的實例不同的實例。

+1

請注意,類也是其元類的實例,而元類也是對象。 – 2011-06-29 22:32:57

相關問題