- 类方法是以+开头的
- Person *p = [Person new];这个是类方法;
- [p test];//这个是对象方法
- 类方法的调用需要创建对象;类方法只能用类来调用;对象方法只能通过对象来调用;
- + (void) test;
- - (void) test;
- 上面两个可以同时存在,因为一个是类方法,一个是对象方法;
- 细节:方法只有两种:类方法;对象方法;
- 对象方法:减号 - 开头;只能有对象来调用;
- 类方法:加号 + 开头;只能有类(名)来调用;
- 类方法的好处:
- 不依赖于对象,执行效率高
- 在开发中,能用类方法尽量用类方法;
- 场合:当方法内部不需要使用到成员变量是,就可以改为类方法;
- 没有任何成员变量和里面的方法都是类方法的类是工具类;
- 假如一个方法用到另一个方法,就可以去调用它;
- 对象方法可以调用类方法;
-
- (void) test { [Person test]; } 下面的代码会导致死循环 + (void)test { [Person test]; } 下面的代码会报错,不会打印; + (void)test { [Person test]; NSLog(@"打印"); }