美文网首页
Effective Objective-C 2.0 学习笔记

Effective Objective-C 2.0 学习笔记

作者: 找个地方记录点东西 | 来源:发表于2018-03-07 17:13 被阅读1次

    1.objective-c 是消息结构语言, 并非函数调用语言

    二者的区别在于。

    消息结构语言,其运行时所应执行的代码有其运行时决定。

    使用动态绑定的消息结构,只有在运行时才会检查对象的类型。

    函数调用语言,有编译器决定。

    2、在类的头文件中尽量少应用其他头文件。

    在.h中如果不需要详细接口信息,尽量使用@class 类名,这种向前声明的方式。

    可以大量减少编译时间,和两个类之间相互引用的问题,降低彼此的依赖度。

    如果是继承某个类,或者遵循某个类的协议就必须导入完整的头文件。

    3.多用字面量语法创建字符

    用字面量语法创建数组或字典时,若有nil 则会抛出异常,务必确保值里面不含nil

    4.多用常量类型,少用#define预处理指令

    #define 会将后面遇到的所有替换。切不能显示数据类型。

    static const数据类型常量明等同于#define(只在编译单元内可见)

    全局符号表

    extern NSString *const name;

    5、用枚举类型表示状态。选项。状态码;

    消息传递: 在对象之间传递数据并执行任务的过程、

    runtime 程序运行起来后提供相关支持的代码叫运行时环境,它提供了

    使得对象之间能后传递消息的重要函数。并且包含了创建的全部逻辑。

    6属性

    assign针对纯量类型进行简单的复制操作(CGFolat NSInteger)

    strong 定义了一种拥有关系,,为这种属性赋值时,会先保留新值,并释放旧值,在将新值添加上去。

    week 定义了一种非拥有关系,为这种属性复制是, 既不保留新值,也不释放旧值。此特质与assgin 类似。

    但是,在属性所指的对象销毁时,属性值也会被清空。

    unsafe_unretained  语义和assign相同,但他适用于” 对象类型”,表达一种非拥有关系,不保留。

    当目标对象遭到摧毁时,属性值不会自动清空。

    7在对象内部尽量直接访问实例变量

    写入数据时,应该通过属性去写

    在初始化方法和dealloc 方法中,总是应该直接通过实例变量来读取数据

    相关文章

      网友评论

          本文标题:Effective Objective-C 2.0 学习笔记

          本文链接:https://www.haomeiwen.com/subject/drfsfftx.html