zoukankan      html  css  js  c++  java
  • iOS之初始化对象

    更新记录

    时间 更新记录
    2020年4月6日 初稿

    初始化对象

    • 一般使用alloc分配内存,Objective-C中的alloc方法将这片内存全部初始化为0
    • OC中的对象必须先初始化才能使用(调用OC中的init或者initwithxxx函数)
    • 一般的对象需要分配内存和初始化后才能使用,C++和Java中都是在构造函数的一次操作中便完成上述操作。而OBjective-C中是分开两个操作
    • Objective-C中最好使用嵌套方式初始化对象,如Car *car = [[Car alloc] init];
      • 初始化方法返回的对象可能与分配的对象不同
      • 像NSString或者NSArray这样类,可能内部是类簇的实现。在调用带参数的init函数时,内部可能会返回另外一个类的对象,导致init返回的对象和alloc返回的对象是不同的。

    编写初始化方法

    • 常见如下代码:
    (id) init {
        if (self = [super init]) {
            //do something to init
        }
        return self;
    }
    
    • 调用基类的init代码,可以让基类完成自身的初始化工作
    • 如上所述,init方法返回的对象可能和alloc方法返回的不同。因此这里要更新self的值
    • 查找实例变量时,是通过self及固定的偏移距离来寻找内存位置的。因此self的值非常重要,不能出错。

    参考资料

    • 《Objective-C基础教程》第2版 10.1 对象初始化
  • 相关阅读:
    机器学习 xgboost 笔记
    leetcode python 042收集雨水
    leetcode python 041首个缺失正数
    leetcode python 037 求解数独
    leetcode python 033 旋转数组查找
    jquery练习
    前端学习课件
    前端CSS
    MySQL_总目录
    MySQL之索引原理与慢查询优化
  • 原文地址:https://www.cnblogs.com/HelloGreen/p/12649895.html
Copyright © 2011-2022 走看看