黑马程序员技术交流社区

标题: iOS学习知识点总结② [打印本页]

作者: onlyxiao    时间: 2016-1-9 10:09
标题: iOS学习知识点总结②
@property(assign,nonatomic)int age;
//关键字:@property set,get方法合成器,相当于声明了一套age的set,get方法,既然声明了就要实现,到.m中通过@synthesize来实现set,get方法。
//总结:@property相当于声明了一套age的set,get方法,@synthesize相当于来实现set,get方法。同时会帮你生成一个全局变量_ag
nonatomic:非原子性,防止多线程访问属性造成赋值错误,提高效率。
assign:修饰属性,九大基本数据类型(结构体)
retain:修饰基本数据类型。


//对象打点调属性赋值的时候会调set方法(自动调用)
//对象打点调属性取职的时候会调get方法(自动调用)
注意:如果重写set,get方法的时候,不用在里面写self.age会造成死循环(self.age=age是错误的)

alloc 创建对象     init初始化
在.h中@property之后,需要到.m中@synthesize。但在高版本中省略不写,系统默认实现。
//重写父类的初始化方法   .h中    -(id)init;
id:弱类型,什么样的对象都可以用id来保存
初始化格式
.m
-(id)init{
    self=[super init];//初始化父类
    if (self)
    {
        self.age=10;//初始化子类
        self.sex=@"女性";
    }
    return self;
}
一般在调用方法的时候,顺序,自己有,调用自己的;自己没有,调用父类的,父类没有调用父类的父类,直到NSObject,如果NSObject
recognized识别
初始化子类的时候,要先初始化父类
super 父类的对象
如果说父类初始化成功self=[super init];,再去初始化子类

子类指针能保存父类对象吗?不能!Man *p=[[people alloc]init]; (❌)
能联想什么方法,全靠指针。
父类指针能否保存子类对象?可以!people *p=[[Man alloc]init]; (✅)


作者: Two_Lights    时间: 2016-1-9 11:18
多谢分享~辛苦了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2