OC-方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC-方法相关的知识,希望对你有一定的参考价值。

  1、类声明

@interface Person : NSObject
{ 
@public
    int _height; 
    int _weight;
    int _age;
}
// 如果你不想每次使用方法都需要创建对象开辟存储空间
// 并且如果该方法中没有使用到属性(成员变量), 那么你可以把这个方法定义为类方法
// 对象方法用对象调用  类方法用类调用

// 如果定义类方法, 类方法的写法和对象方法一模一样, 除了前面的-号不同以外,只需要将对象方法的-号换成+, 那么就定义了一个类方法
+ (int)sumWithValue1:(int)value1 andValue2:(int)value2;
- (int)sumWithValue1:(int)value1 andValue2:(int)value2;
@end

  2、类实现

@implementation Person

// 行为的实现
// 注意: 如果声明的是对象方法那么就必须实现对象方法
//      如果声明的是类方法那么就必须实现类方法

+ (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
- (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
@end

  3、main函数

int main(int argc, const char * argv[]) {
    
    Person *p = [Person new];     // 通过类创建对象
    int sum0 = [p sumWithValue1:10 andValue2:20];  //调用对象方法
    int sum1 = [Person sumWithValue1:10 andValue2:20]; //调用类方法
    NSLog(@"sum0 = %i,sum1 = %i, sum0,sum1);    
    return 0;
}

  

  类方法和对象方法的区别
  0. 对象方法以-开头
    类方法以+开头
  1. 对象方法必须用对象调用
      类方法必须用类来调用
  2. 对象方法中可以直接访问属性(成员变量)
      类方法中不可以直接访问属性(成员变量)
  3. 类方法和对象方法可以进行相互调用

  类方法的应用场景:
     如果方法中没有使用到属性(成员变量), 那么能用类方法就用类方法
     类方法的执行效率比对象方法高

  

以上是关于OC-方法的主要内容,如果未能解决你的问题,请参考以下文章

JS与OC中的方法相互调用

转载 -- 基于原生JS与OC方法互相调用并传值(附HTML代码)

编写OC高质量的代码的有效方法

oc渲染器提示着色器失败

Xcode里怎么使用c 调用oc的方法?

编写OC高质量的代码的有效方法