第二章 Object-c 读书笔记

来源:互联网 发布:popo聊天软件 编辑:程序博客网 时间:2024/06/16 01:37



一,object

        1,object-c是c语言的子集,它是一门面向对象的语言

         2,object-c和c最大的不同点是, object-c有方法, 访问一个oc对象方法,需要向oc对象发送相应的action;


二,发送消息

        1,消息的语法

              receiver:被通知执行某个方法的对象; selector:方法; arguments:方法的参数;

        2,消息的名字是唯一的

        3,不能创建名字相同,但是返回值或者参数类型不同的方法


三,创建对象

        发送alloc消息


四,销毁对象

        设置对象引用为nil,向一个Nil对象发送消息,程序不会crash


五,创建Command Line Tool项目

        不能在ios设备中运行

       

六,oc中的数组只能添加对象,实际上,它只是保存了对象的引用。

         NSMutableArray可以动态添加、删除成员,但NSArray创建后不可修改。


七,可以使用快速遍历的方法,遍历一个array,这样效率比普通遍历的方法高,但如果在遍历过程中添加、删除成员会导致异常


八,format string

        1,格式化的方法生成一个String对象,和C类似

int a = 1;float b = 2.5;char c = 'A';NSLog(@"Integer: %d Float: %f Char: %c", a, b, c);
         2,使用%@时,会向相应的对象发送description消息


九,oc保留了c的关键字,使用@表述是oc特有的关键字,如@interface


十,只能使用accessors(get  set方法)访问另外一个对象的成员变量;


十一,使用dot

        可以使用dot语法直接访问,oc对象的属性,它底层是调用accessor方法


十二,成员方法和类方法

            类本身也是一个对象,可以向它发送方法,比如alloc

 

十三,默认构造函数(Designated initializer)

           确保调用了这个构造函数,对象实例化后不会出现问题; 它并不是系统指定的


十四,instancetype

            1,只能用于返回值,它的类型和receiver相同

             2,在构造函数中的返回值使用instancetype


十五,id

            相对于void *, 和具体的类型无关,可以用于快速遍历数组等地方


十六,self

            相对于this,即是方法中传入的隐式对象,和发送这个消息的对象一致;

            self可以指向一个类名,类本身也是一个对象


十七,super

            super用于直接调用分类的方法


十八,数组

            1,可以使用[ ]的方法访问数组的数据成员

            2,数组的成员必须是对象的引用,不能是简单类型或者c结构体


十九:isa

          当一个对象收到消息时,它会通过isa变量通知类对象去查找相应的方法,并执行代码。

          如果没有这个方法,成员会抛出running异常,ios虽然也有try{}机制处理,但不推荐使用


二十,命名冲突

          尽量使用好的前缀避免命名冲突,要三个字母以上的前缀名




 



0 0
原创粉丝点击