A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© songzengyu 中级黑马   /  2016-2-24 09:13  /  1262 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ARC和MRC有什么区别,对内存中的哪部分进行管理?再定义属性时分别使用什么参数,(retain,assign,copy,strong,week),求大神回答

1 个回复

倒序浏览
簡單的說
mrc 就是手動管理內存
arc 就是自動管理內存

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

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

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

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

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

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

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

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

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


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马