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中的语句。

  • 相关阅读:
    Could not autowire. No beans of 'TbItemMapper' type found. less... (Ctrl+F1) Checks autowiring prob
    使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
    IntelliJ IDEA Ultimate 下载与安装
    Android Studio 下载与安装配置
    MySQL Community Server 8.0.11下载与安装配置
    Eclipse EE下载安装与配置
    Tomcat 下载安装与配置
    篮球术语
    GPU对数据的操作不可累加
    经典把妹桥段:Flower dance开头对话
  • 原文地址:https://www.cnblogs.com/qq1871707128/p/6014777.html
Copyright © 2011-2022 走看看