zoukankan      html  css  js  c++  java
  • 创建对象为什么要 init?

    self 为什么要赋值为[super init]当程序进入到init这个方法的时候,系统已经生成了对象并分配了存储空间在调用[super init]是为了初始化父类对象,在父类对象初始化过程序中有可能失败(如网络资源调用失败)或者返回其它对象(这个取决于你的父类了),这个时候会返回nil(只解释为nil)。如果父类对象nil子类对象其实没必要再执行了。当然这个时候的self其实也可以继续执行子类对象的初始化工作,因为都是同一个对象,只不过在你调用父类的某一些功能可能不起作用或者报错。

     

     

     

    1.[super init]的作用:

    面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化。

    2.self 为什么要赋值为[super init]

    简单来说是为了防止父类的初始化方法release掉了self指向的空间并重新alloc了一块空间。这时的话,[super init]可能alloc失败,这时就不再执行if中的语句。

  • 相关阅读:
    文件读写,函数,元组和集合
    Python列表,字典和字符串操作
    linux grep程序输出 文本过滤
    prj坐标转换
    ubuntu 分卷解压中文乱码
    利用ssh 删除远程服务器文件
    git 提交
    linux 命令scp
    osgEarth编译——以VS2012为例
    GDAL2.0编译——32位和64位
  • 原文地址:https://www.cnblogs.com/qq1871707128/p/6014777.html
Copyright © 2011-2022 走看看