zoukankan      html  css  js  c++  java
  • objectivec:分配和初始化对象

    和C#类似OC中也有一个根类型,也就是NSObject,它包含一个alloc方法和一个init方法。顾名思义,alloc用于申请内存,创建一个对象的内部结构,并且将实例变量赋值为0。

    init方法赋值将变量的值赋值为默认值(似乎和0不一样),然后执行一些其它的任务。

    alloc就像进入了一辆车里,而init是打火发动汽车。

    正常写法:

    MyObject *someObject = [[MyObject alloc] init];
    [someObject doSomething];

    另一种是:

    MyObject *someObject = [MyObject new];

    其实这样写程序照样执行

    MyObject *someObject = [MyObject alloc];
    [someObject doSomething];

    为嘛呢?因为在NSObject中的定义的init方法并没有初始化任何东西,它只是返回了自身。在类被使用之前,需要执行一些任务才能使用,而init只不过是这些任务的占位符罢了。NSObject并没有初始化任何东西,但是[[MyObject alloc] init]这种写法仍旧是推荐的写法,初始化方法返回的是id类型的对象,因此init方法和alloc方法返回的未必是一个对象。这种技术( [[MyObject alloc] init])叫做two-stage creation。

  • 相关阅读:
    Java中一对多映射关系(转)
    java映射一对一关系 (转)
    如何创建JUnit
    Java数组转置
    get与post方法(吴老师整理)
    后台获得数据
    JDK1.8的安装与卸载
    使用JSP输出九九乘法表
    foreach
    匿名内部类
  • 原文地址:https://www.cnblogs.com/klkucan/p/2828350.html
Copyright © 2011-2022 走看看