Objective-C中确实存在static方法。static方法是类方法(class method)的一种,与实例方法(instance method)相对。
实例方法
实例方法是针对类实例对象的方法,通过发送消息给实例来调用:
Person *p = [[Person alloc] init];
[p eat];
需要先创建实例才能调用实例方法。
类方法(static方法)
类方法(也称为静态方法)是针对类本身的方法,通过类名直接调用:
[Person eat];
类方法通常用来创建实例对象。
类方法的声明使用+号:
+ (id)personWithName:(NSString*)name;
static关键字
可以使用static来修饰类方法,限制其作用域:
+ (void)privateMethod {
//...
}
static + (void)privateMethod2 {
//...
}
privateMethod2只能在实现文件的类内部访问。
使用场景
类方法适用于无状态的工具函数或创建实例对象的工厂方法。
综上所述,Objective-C是支持类方法(static方法)的,与实例方法有不同的使用场景。