美文网首页OC学习iOS OC 学习手册iOS Developer
iOS类方法、实例方法、构造方法

iOS类方法、实例方法、构造方法

作者: 敲代码的香蕉片 | 来源:发表于2017-04-07 14:09 被阅读2839次

    类方法

    类方法,也称静态方法或者工厂方法,以+开头,指的是用static关键字修饰的方法。类方法属于整个类,在项目中工具类的封装多用工厂方法调用,调用格式[类名 类方法]; 
    举个例子,如果多个界面都需要从沙盒中取出某个数据,就可以把这个方法进行封装
    新建一个类,继承于NSObject,类名为GetHead。
    在GetHead.h中声明一个类方法+(NSString *)getHeadString;//这里的getHeadString就是类方法名。(NSString *)就是这个类方法返回的值的类型。
    在GetHead.m中实现声明的方法:
    +(NSString *)getHeadString
    {
       NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
       NSString *strPath = [documentPathStr stringByAppendingPathComponent:@"/obj.txt"];
       NSString *newStr = [NSString stringWithContentsOfFile:strPath encoding:NSUTF8StringEncoding error:nil];
       return newStr;
    }
    ViewController中调用这个方法:NSString *str = [GetHead getHeadString];
    类方法也可以同样传参数进去,比如进行网络请求时候,可以把网络请求封装,传入不同的请求体即可。
    

    实例方法

    实例方法指的是不用static关键字修饰的方法,以-开头,它属于类的某一个或某几个实例对象,即类对象必须实例化后才可以使用的方法,调用方式[对象名 对象方法];
    例:有一个Person类,继承于NSObject,在.h文件中声明一个方法-(void)say;.
    在.m文件中实现这个方法-(void)say{NSLog(@"哈哈哈");} 
    ViewController要想调用这个方法:
    Person *xm = [[Person alloc]init]; 
    [xm say];
    

    构造方法

    什么是构造方法:初始化对象的方法。一般情况下,在 OC 当中创建1个对象分为两部分(new 做的事):alloc:分配内存空间,init :初始化对象。
    构造方法分为系统自带和自定义构造方法。 
    (1)如果是系统自带的构造方法,需要重写父类中自带的构造方法 比如init 
    (2)如果是自定义构造方法:属于对象方法那么以-号开头,返回值一般为id或者instancetype类型,方法名一般以init开头  
    系统构造方法书写格式:
    - (instancetype)init
    {
      self = [super init];
      if (self) {      
      }
    return self;
    }
    自定义构造方法:
    @property int age;
    @property NSString *name;
    //自定义构造方法 在初始化的时候为属性"年龄"和"姓名"赋值
    - (instancetype)initWithAge:(int)age andName:(NSString *)name;
    实现
    // 实现自定义构造函数 在初始化的时候为属性赋值
     - (id)initWithAge:(int)age andName:(NSString *)name
    {
      if (self = [super init]) {
        _age = age;
        _name = name;
    }
    return self;
    }
    

    文章是为了留下记录,以便巩固基础知识,日后会继续完善,如果有不好的地方,敬请指教。

    相关文章

      网友评论

      本文标题:iOS类方法、实例方法、构造方法

      本文链接:https://www.haomeiwen.com/subject/lklhattx.html