2009年3月1日星期日

Class Method 和 instance Method

Objective -C 中,编译器将Class 代码编译生成一个Class Object这个,它不能使用instance method, 但它也有自己的继承,就是它可以从父类那里继承来一些class method, 比如version.

举一个例子,
int versionNumber = [Rectangle version];

除了这样你还可以这样
id aClass = [anObject class];
id rectClass = [Rectangle class];

因为Class Object和其他任何object一样都能被定义成id类型,因为他们都是Object,同样的任何Class Object都是属于Class这个类,所以我们同样可以type成Class.
这是两种获知id指针的方式,即可以向一个instance 传一个class消息,也可以向一个class object也就是用Rectangle来代表的这个传一个message消息,都能获知id

Class aClass = [anObject class];
Class rectClass = [Rectangle class];

没有评论:

发表评论