Objective
我來搞個笑 “難道你們沒打開過 main.m?”
C的描述是對的,在遇到需要大量創建對象的地方使用autoreleasepool可以加快對象釋放的速度。如果說A是錯的,那只能是說明出題者想考你ARC的原理其實是編譯器自動幫你在代碼中加入autorelease等代碼。其實在ARC的項目中寫autorelease連編譯都通不過,這樣想得話A其實也是對的。不過既然其他3個都是對的,也只能選A了。
你看的參考答案不對。ARC 下,不能使用 autorelease 進行編程,但是可以使用 @autoreleasepool。它的作用是降低內存占用。
因為ARC是編譯器特性,而不是iOS運行時特性,更不是其他語言中的垃圾收集器。所以這就意味這它只能處理在編譯時就確定的內存管理,所用的機制就是引用計數。換句話來講,他的內存釋放不是強制的,比如內存相互引用,動態引用等會導致引用計數不會立刻置0,所以這個時候顯式釋放是有必要的。
C的描述是對的,在遇到需要大量創建對象的地方使用autoreleasepool可以加快對象釋放的速度。如果說A是錯的,那只能是說明出題者想考你ARC的原理其實是編譯器自動幫你在代碼中加入autorelease等代碼。其實在ARC的項目中寫autorelease連編譯都通不過,這樣想得話A其實也是對的。不過既然其他3個都是對的,也只能選A了。
你看的參考答案不對。ARC 下,不能使用 autorelease 進行編程,但是可以使用 @autoreleasepool。它的作用是降低內存占用。
因為ARC是編譯器特性,而不是iOS運行時特性,更不是其他語言中的垃圾收集器。所以這就意味這它只能處理在編譯時就確定的內存管理,所用的機制就是引用計數。換句話來講,他的內存釋放不是強制的,比如內存相互引用,動態引用等會導致引用計數不會立刻置0,所以這個時候顯式釋放是有必要的。
總結
- 上一篇: 中国大妈是什么意思
- 下一篇: 收集美女类的手游有哪些?