Objective-C Autorelease Pool 的實現原理
autoreleased 物件什麼時候釋放
autorelease 本質上就是延遲呼叫 release ,那 autoreleased 物件究竟會在什麼時候釋放呢?為了弄清楚這個問題,我們先來做一個小實驗。這個小實驗分 3 種場景進行,請你先自行思考在每種場景下的 console 輸出,以加深理解。注
特別說明:在蘋果一些新的硬體裝置上,本實驗的結果已經不再成立,詳細情況如下:
- iPad 2
iPad AiriPad Air 2iPad Pro- iPad Retina
- iPhone 4s
- iPhone 5
iPhone 5siPhone 6iPhone 6 PlusiPhone 6siPhone 6s Plus
1 2 3 4 5 6 7 8 9 10 11 |
|
思考得怎麼樣了?相信在你心中已經有答案了。那麼讓我們一起來看看 console 輸出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|