你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> 自動釋放池NSAutoReleasePool

自動釋放池NSAutoReleasePool

編輯:關於IOS

NSAutoreleasePool用於支持Coco的引用計數內存管理

  //使用ARC時 NSAutorelease *pool = [[NSAutoreleasePool alloc] init]; [pool release];   //是否使用ARC都可以,效率更高 @aurorelease {       }   + addObject; - addObject; 添加對象到當前線程中有效的自動釋放池,同一個對象可以向釋放池中添加多次,當釋放池銷毀時,對於每次添加的對象都會收到release消息。一般我們不使用這個方法,而是通過向對象發送aurorelease方法來代替。   - (void)drain 在引用計數環境下,作用與release一樣 自動釋放池不能retained, 所以會導致釋放池釋放 當一個自動釋放池被銷毀時,會發送一個release消息給它所有的自動釋放對象,如果一個對象被添加多次,則每次添加的都會被銷毀 。   NSObject: - (oneway void)release;  //引用計數器減1, 當為0時,會收到dealloc消息,銷毀對象 - (id)autorelease;  //在當前自動釋放池結束時,引用計數器減1,即[pool drain]時銷毀對象     在創建工程時,在main函數中已經有了一個自動釋放池 int main(int argc, char *argv[]) {      @autoreleasepool      {           return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));      } }   創建自動釋放池: 當某函數使用了大量的自動釋放對象,內存占用過大,會被系統中止掉,此時就需要手動添加自動釋放池來及時釋放內存空間。
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved