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

  • 相关阅读:
    大话GridView—(1) 编辑、删除、查看详情、分页
    『协议』XMLRPC 协议规格说明
    『ExtJS』01 009. ExtJS 4 方法重载
    [SQL2005触发器学习]3、Instead Of触发器
    [SQL2005触发器学习]1、初识触发器
    禁止.NET程序多开
    面试遇到的面试题分析
    关于Page,Master,UserControl的初始化及加载顺序
    ASP.NET 下关于ACCESS连接字符串的配置
    [SQL2005触发器学习]2、After触发器
  • 原文地址:https://www.cnblogs.com/qq1871707128/p/6014777.html
Copyright © 2011-2022 走看看