美文网首页
2019-02-20

2019-02-20

作者: Mac小黑 | 来源:发表于2019-02-21 10:19 被阅读0次

    1, a local variable is allocated on the stack, while objects are allocated on the heap.

    2, Objective-C中有一个额外的替换标记%@,用于表示对象, 在运行时,此说明符将替换为调用descriptionWithLocale:方法(如果存在)或description提供的对象上的方法的结果

    3, self:  self is a way to refer to “the object that’s received this message.” ,表示当前接收对象

    4,id:  to mean “some kind of object.”, It is a pointer to an object, like (NSObject *)
    5, 如果初始化不需要参数,则使用new创建对象

    6, ==运算符用于测试两个单独的指针是否指向同一个对象, 如果需要测试两个对象是否表示相同的数据,则需要调用类似的方法isEqual:

    7, 声明一个局部变量(int , float)之类的,应为是再栈上的内存,所以必须初始化,不然会残留上一次栈内存上的值,这对于对象指针不是必需的,对象分配再堆内存上,编译器将自动将变量设置为nil

    int magicNumber = 42; XYZPerson * somePerson;

    8, 向nil对象发送消息是完全没有问题的

    9,访问nonatomic属性比一个属性更快atomic

    10,Objective-C对象的内存是动态分配的(在堆上),这意味着您需要使用指针来跟踪对象的地址

    11,__weak:  为了避免指向最初由当前释放的对象占用的内存的危险悬空指针,弱引用将自动设置nil为其对象被释放时

    12, unsafe_unretained: 不安全的引用类似于弱引用,因为它不会强引用对象,但如果目标对象被释放,则不会将其设置为nil, 变成悬挂指针(野指针), 向悬空指针发送消息将导致崩溃

    13,Categories,类别可用于声明实例方法或类方法,但通常不适用于声明其他属性。避免使用类别方法名称冲突

    14,协议可以包括实例方法和类方法的声明,以及属性。与Objective-C类可以从超类继承的方式相同,您还可以指定一个协议符合另一个协议。

    相关文章

      网友评论

          本文标题:2019-02-20

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