Objective-C中的方法有两种:类方法和对象方法(也叫作实例方法)。
对象方法和类方法区别
对象方法
- 对象方法是属于对象的
- 以减号-开头
- 只能让对象调用,没有对象,这个方法根本不可能被执行
- 对象方法能访问实例变量(成员变量)
- 对象方法中可以调用当前对象的对象方法
- 对象方法中可以调用其他对象的对象方法
- 对象方法中不可以调用类方法
类方法
- 类方法是属于类的
- 以加号+开头
- 只能用类名调用,对象不能调用
- 类方法中不能直接访问实例变量(成员变量)
- 类方法中不能直接调用对象方法,要想调用对象方法,必须创建或传入对象。
所以当不需要访问成员变量的时候,尽量用类方法。并且类方法执行效率更高。
另外。类方法存储在元类里。元类的结构里有存储类方法列表的数据结构。所以类方法和对象方法可以同名,并且也遵循OC的消息转发机制。
网友评论