I、 Objective-C中的类方法和实例方法有什么本质区别和联系
开发中定义的类自身也是一个对象,称为类对象,保存该类的成员变量、属性列表和方法列表等。
类对象经alloc和init实例化后成为实例对象。
- 1)类方法属于类对象,用“+”号修饰,它类似于C语言中的静态方法,类方法列表定义在类对象的元类中,通过isa指针找到;实例方法属于实例对象,用“-”号修饰,实例方法列表定义在实例对象的类对象中,通过isa指针找到。
- 2)类方法只能通过类对象调用,也就是类名直接调用;实例方法则需要由通过alloc和init方法实例化后的实例对象调用。
- 3)类方法中的self指类对象;实例方法中的self指实例对象。
- 4)类方法可以调用其他的类方法,但不可以直接调用实例方法;而实例方法既可以调用其他实例方法,也可以通过类名直接调用本类或者外部类的类方法。
- 5)在实例方法中可以访问成员变量,但类方法中不能访问成员变量。
II、 +(void)load; +(void)initialize;
有什么用处?
在Objective-C中,runtime会自动调用每个类的两个方法。
-
<