2014-07-08 74 views
0

我想了解Objective-C中的Class類型。我可以問一下Class類型和NSObject類型有什麼不同?這聽起來像班級類型做類似NSObject正確?類類型和NSObject類型

回答

1

NSObjectClass不一樣。

在Objective C中,類是對象。類似NSObject的類在Class類型的實例中。說NSObjectClass類型是正確的,就像你會說NSObject的實例是NSObject類型的實例。

Class也是一個對象,但它的類型是真正不適合初學者的元類。

2

我相信這已被問了好幾次......但無論如何我找不到任何舊的實例。

與C++類語言不同,類是OBJC中實際的常規對象實例。 當您致電[NSObject class]時,它會返回一個包含類方法和額外信息的活動對象。這些都是由編譯器合成的,這實際上提供了所有與類相關的功能。

Class是這些類對象的類型。

還有一件事。因爲Class對象是對象,所以它們也具有類對象,這些對象稱爲元類。在這裏看到更多的細節: http://www.cocoawithlove.com/2010/01/what-is-meta-class-in-objective-c.html

此外,你可能會感到困惑,因爲可可的大多數類型使用NSObject作爲根類。但這僅僅是一個約定,實際上一個類不必繼承NSObject

1

一個類是一個模板,例如,人類 對象是一個類的實例,例如, bob the human

NSObject是大多數Objective-C類的根類(例如NSTextField,NSButton等) 所以,NSButton繼承了NSObject的屬性,也是一個類(一個子類)。如果你創建一個按鈕,該按鈕現在是一個類型爲NSButton(class)的實例(對象),它繼承自:NSControl:NSView:NSResponder:NSObject,按順序遞減。

更多信息: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html