zoukankan      html  css  js  c++  java
  • iOS开发init方法解析

    自定义的init方法,都必须调用父类的init方法。
    一般情况下为:
    - (id)init
    {
         [super init];
         xxx = xxx;
    }
     
    通常情况下,这种模式可以满足绝大多数的需求,但是在少量情况下,需要一些特殊处理。
    1,出于优化的考虑,init方法会释放已经分配了内存的对象,然后创建另一个新对象并返回之。
    2,init方法在执行过程中发生了错误,所以会释放对象并返回nil。
     
    对于1,苹果官网的做法是将父类init方法的返回值给self,对于2,苹果官网的做法是检测父类返回的对象是否为nil,为nil则不需要继续进行。
     
    所以,苹果推荐的init自定义方法是:
     
    - (id)init
    {
         self = [super init];
         if(self)
         {     
               xxx = xxx;
         }
     
         return self;
    }
     
    init中,可以直接进行赋值,也可以使用存取方法。
    偏好直接赋值的人认为:对象只有执行完init之后,才能完成初始化。
    偏好使用存取方法的人认为:存取方法除了能为实例变量赋值之外,还能做其他的事情。只要是设置实例变量,都可以使用存取方法。
  • 相关阅读:
    android 入门-Activity及 字体
    android 入门-安装环境
    PS 零基础训练1
    txt操作
    C#重绘TabControl
    ini操作
    C#编写ActiveX控件
    远程目录和文件判断
    c#一些操作
    c#消息窗体
  • 原文地址:https://www.cnblogs.com/lxd2502/p/5106468.html
Copyright © 2011-2022 走看看