OC基础第八讲:属性 和点语法

来源:互联网 发布:淘宝衣服网 编辑:程序博客网 时间:2024/06/05 18:27

     /****************   OC第八讲 属性    ******************/

       

/****************   属性介绍   ******************/

        //属性是OC 2.0之后出现的语法,为实例变量提供了settergetter方法的默认实现

       //属性的出现简化了程序的代码量,也增加了实例变量访问的安全

 /****************  属性的属性   ******************/

        

//给属性提供一些关键字,用来控制settergetter方法的实现细节,这些关键字我们称为属性的属性,属性(attribute)共分为三类:

        

        /*

         diyilei:

         读写性的控制(readonly, readwrite, setter, getter

         

         readonly:告诉编译器,只声明getter方法,而没有setter(只能被读取,不能被修改)

         readwrite:告诉编译器,既声明getter方法,又声明setter

         readwrite属性读写控制性的 默认修饰词

         

         

         

         第二类:

         原子性的控制:atomicnonatomic

         

         atomicsettergetter方法在多线程中访问是安全的,即系统在settergetter方法中做了很多多线程安全的处理操作。atomic是原子性控制的默认设置。

         nonatomicsettergetter内部不会做过多的多线程方法面的处理,仅仅是普通的settergetter方法

         

        在开发过程中 settergetter方法处处都在使用,如果使用atomic修饰,settergetter方法内部会做很多多线程安全的操作,会占用较多系统资源,降低系统性能,所以在平常开发性能中,原子性一般设置为atomic,只有在需要线程安全的地方才使用atomic

         

         

         第三类:

         语义设置:(assignretaincopy


         assignsetter内部实现是直接赋值

         

         retain: setter内部实现会对内存进行优化

         

        如果属性是非对象类型(intfloat或者构造类型:结构体等)属性的语义设置用assign

         如果属性是对象类型(NSString,NSArray等)属性的语义设置用retain

         

         *的属性,语义设置用retain

         不带*的设置,语义设置用assign

         

        如果属性是对象类型并且想得到参数的copy,使用copy关键字


 */

        

                /****************  点语法   ******************/

        

        //练习3:使用点语法对teacher类和student类进行赋值取值

        //点语法在等号左边是setter方法(赋值),在等号右边是getter方法(取值)

        Student *qiao = [[Studentalloc]init];

        qiao.name =@"";

        NSLog(@"name = %@",qiao.name);

        

        qiao.age = 21;

        qiao.gender =@"";

        qiao.blood =@"A";

        qiao.classname = 6;

        qiao.stunum = 13055126;

        qiao.hight = 175;

        qiao.weight = 64.23;

        qiao.schhol =@"XX理工";

        qiao.inter =@"不知道这个单词是什么鬼";

        qiao.grade = 3;

        qiao.major =@"有一个什么鬼";

        qiao.nation =@"中国";

        qiao.seatnum = 32;

        qiao.hometown =@"十三朝古都";

        qiao.politic =@"再加一";

        qiao.idcardnum = 410325;

        qiao.posd =@"原谅我的孤陋寡闻";

        qiao.colorofskin =@"孤陋寡闻加一";

        qiao.score = 96;

        qiao.vision = 666666;

        

 Student.h


 Student.m





0 0
原创粉丝点击