alloc只是分配存储空间,并没有初始化,init里可能有一些方法呢,你自己也可以写init里的方法呀,类似于java中构造方法里的内容

解决方案 »

  1.   

    c++里面的new,会先分配内存,然后调用类的构造函数初始化这块内存。所以分配内存和初始化的工作,new自己都做了。Java中的new应该也类似,先分配内存,再完成初始化。Cocoa里面的alloc,从名字来看,应该只是分配内存,而init负责初始化。alloc和init一起完成类似于Java中new的工作。我刚接触Objective-C,感觉是这样。
      

  2.   

    alloc是分配内存空间,init是初始化,两个一起等效于new, 在OC里都可以用,但一般推荐用alloc+init的,这个能更清晰看到分配内存和初始化这个过程,并且如果有init方法比如initWith......这些的就方便点
      

  3.   

    alloc只是分配内存空间给对象,而init是对对象进行初始化方法。
      

  4.   

    http://www.cocoachina.com/bbs/read.php?tid=125068参考这个,谢谢各位了
      

  5.   

    既然如此,为什么alloc和init之后  ,内存空间地址不在同一个位置