黑马程序员技术交流社区

标题: ARC和MRC有什么区别 [打印本页]

作者: songzengyu    时间: 2016-2-24 09:13
标题: ARC和MRC有什么区别
ARC和MRC有什么区别,对内存中的哪部分进行管理?再定义属性时分别使用什么参数,(retain,assign,copy,strong,week),求大神回答
作者: Kuhoku    时间: 2016-2-24 15:01
簡單的說
mrc 就是手動管理內存
arc 就是自動管理內存

你可以把他想像成 手排車 跟自動車

如果還不會開車的可以用槍做比喻

arc 就像是 你射出一發子彈 就要自己再裝上一發子彈
mrc 則像是 你射出了一發子彈 彈夾裡面自動幫妳生成一顆子彈

在開發中 mrc 模式 他其實就是自動幫妳生成了一些 釋放的代碼 只是你看不到

掌握一個原則 誰創建 誰釋放 (面試必考題)

retain: 不能用來修飾數據類型的property 不然會報錯 他將指針拷貝到另一個地方去 讓別人可以去使用那個地方的東西 (就像複製了一塊路牌)

assign : 是一個被默認生成的屬性 不管你寫不寫他都會在,用來簡單數據類型的   property  像是 Int , Float
(只要有他在計數器就會加一)

copy:不能用來修飾數據類型的property 不然會報錯 , 將一個對象源源本本的搬到另一個地方 (就像搬家連房子一起搬走)

strong:  表示這個對象是強引用 (就像你用鐵鍊栓著條狗,然後把它拉回來)
week::表示這個對象是弱引用 (就像你用喊的叫你的狗回來一樣)







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2