码迷,mamicode.com
首页 > 其他好文 > 详细

OC-id、构造方法

时间:2015-11-10 20:49:14      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

  1. id
  1. 简介
  • 万能指针,能指向任何OC对象,相当于NSObject *
  • id类型的定义
typedef struct objc_object {

    Class isa;

} *id;

 

 

  1. 使用
// 注意:id后面不要加上*

id p = [Person new];

 

 

  1. 局限性

调用一个不存在的方法,编译器会马上报错

 

  1. 构造方法:---用来初始化对象的方法,是一个对象方法
  1. 对象创建原理
  • new的拆分两部曲
  • 分配内存(+alloc)
  • 初始化(-init)
Person *p1 = [Person alloc];

Person *p1 = [p1 init];

 

合成一句后:

Person *p = [[Person alloc] init];

 

 

  1. init方法的重写
  • 目的:为了让对象创建完毕后,成员变量马上就有一些默认的值
  • init方法的重写过程
  • 先初始化父类,后初始化子类
    • 先调用父类的构造方法([super init])
  1. 技术分享
    - (id)init
    {
        if (self = [super init])
    
        {
            _age = 10;
        }
        return self;
    }

     

技术分享

技术分享

 

 

 

 

自定义构造方法

  • 构造方法的一些规范
  • 返回值是id类型
  • 方法名都以init开头
  • 技术分享
    - (id)initWithAge:(int)age {
    
        if (self = [super init]) {
    
            _age = age;
        }
        return self;
    }
    技术分享

       传递多个参数进行初始化

- (id) initWithAge:(int)age andNo:(int)no;

 

      .h和.m文件的抽取

  • 每个类分布在不同文件中
  • 类的声明放在.h文件,类的实现放在.m文件
  • 若想使用某个类,就包含某个类的.h声明文件

OC-id、构造方法

标签:

原文地址:http://www.cnblogs.com/IDRI/p/4954070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!