黑马程序员——iOS 开发学习---基本语法

来源:互联网 发布:英国cpi数据 编辑:程序博客网 时间:2024/04/30 15:13

@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=[superinit];//初始化父类

    if (self)

    {

        self.age=10;//初始化子类

        self.sex=@"女性";

    }

    return self;

}

一般在调用方法的时候,顺序,自己有,调用自己的;自己没有,调用父类的,父类没有调用父类的父类,直到NSObject,如果NSObject

recognized识别

初始化子类的时候,要先初始化父类

super 父类的对象

如果说父类初始化成功self=[superinit];,再去初始化子类


子类指针能保存父类对象吗?不能!Man *p=[[peoplealloc]init]; ()

能联想什么方法,全靠指针。

父类指针能否保存子类对象?可以!people *p=[[Manalloc]init]; ()

0 0
原创粉丝点击