iOS面试题 02

在面试的时候,面试官问我,“你对内存管理了解的多吗?” 我忘了当时是怎么回答的了,但是,肯定是一时没想起来怎么回答。

  1.谁创建谁释放

  2.autoreleasepool

  3.retain,copy,new都会增加一次计数,release,会让计数减一

 

深拷贝和浅拷贝

  copy和retain:

  copy是创建一个新的对象,retain是创建一个指针,引用对象计数加1.copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有发生变化。copy减少对象对上下文的依赖。

  retain属性表示两个对象指针地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1。

 

  retain是指针拷贝,copy是内容拷贝。

 

  对集合内容的拷贝,是深拷贝。

  stringcopy和copy,都是浅拷贝;

  mutablecopy是深拷贝

  

posted @ 2015-08-28 15:07  羊羊羊🐑  Views(163)  Comments(0Edit  收藏  举报