• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
            自動釋放池:先介紹下自動釋放池的概念,自動釋放池是一個對象,所以你可以創建多個自動釋放池。
            那么這個對象提供了那些功能呢,它主要的作用是在自動釋放池被銷毀時候,自動給池子中的所有對
            象一一,發送release消息。其實這個功能就等效于我們自己寫release。

            優點: 不用再小心心翼翼的在寫代碼的時候,把代碼寫在對象release前面,防止調用僵尸對象導致出
            錯。從object-c2.0開始,自動釋放池使用@autoreleasepool {} 創建,更加方便于直觀,在
            autorelease的塊外,自動釋放池就結束了,表示將被釋放,也就是所在這個塊結束時候,等效于給里面
            的對象,一一發送release消息。

            如何把對象加入自動釋放池:
            只要是繼承自NSObject的對象,都有autorelease方法。調用該方法即可,將對象加入自動釋放池。
            注意:autorelease方法返回對象本身,所以一般是在初始化完對象后,直接調用autorelease方法。

            Person與Dog對象實現十分簡單,不予復述。Person擁有Dog對象,所以setter方法內存管理用retain~。

            自動釋放池的兩種創建方式
            1.@autoreleasepool {} ,可嵌套創建
            2.用NSAutoreleasePool進行創建。(alloc、init),不可嵌套。調用release或者drain方法進行釋放。


             1 //
             2 //  main.m
             3 //  autorelease.m
             4 //
             5 //  Created by sixleaves on 15/5/9.
             6 //  Copyright (c) 2015年 itcast. All rights reserved.
             7 //
             8 
             9 #import <Foundation/Foundation.h>
            10 #import "Person.h"
            11 #import "Dog.h"
            12 int main(int argc, const char * argv[]) {
            13     @autoreleasepool {
            14         
            15         // p-1
            16         Person *p = [[[Person alloc] init] autorelease];
            17         // c-1
            18         Dog *c = [[[Dog alloc] init] autorelease];
            19         
            20         // p -1 c-2
            21         p.dog = c;
            22     } // p - 0 c-1 => c-0
            23     
            24     return 0;
            25 }
            26  /*
                     輸出:

                     2015-05-10 11:13:12.117 autorelease.m[1999:18472] Dog-dealloc

                     2015-05-10 11:13:12.117 autorelease.m[1999:18472] Person-dealloc

                     Program ended with exit code: 0

                 */
            posted on 2015-05-10 11:17 swp 閱讀(219) 評論(0)  編輯 收藏 引用 所屬分類: objective-c
            精品熟女少妇a∨免费久久| 亚洲熟妇无码另类久久久| 青青草国产精品久久久久| 国产精品99久久精品| 四虎影视久久久免费观看| 伊人久久亚洲综合影院| 欧洲成人午夜精品无码区久久 | 欧美精品国产综合久久| 国产成人精品综合久久久久| 97精品国产91久久久久久| 久久综合亚洲色HEZYO国产| 亚洲香蕉网久久综合影视| 国产精品VIDEOSSEX久久发布| 久久精品人妻中文系列| 97久久婷婷五月综合色d啪蜜芽| 久久精品国产99久久久| 日本精品久久久久久久久免费| 久久大香香蕉国产| 久久香综合精品久久伊人| 国产精品欧美亚洲韩国日本久久| 精品久久亚洲中文无码| 日韩欧美亚洲国产精品字幕久久久 | 99久久99久久精品国产| 久久天天躁狠狠躁夜夜躁2O2O| 久久无码一区二区三区少妇 | 久久精品中文无码资源站| 久久亚洲精品无码播放| 久久亚洲国产中v天仙www| av无码久久久久久不卡网站| 国内精品久久久久久久久电影网| 性欧美大战久久久久久久| 久久精品亚洲精品国产欧美| 国产精品熟女福利久久AV| 久久91亚洲人成电影网站| 国产99精品久久| 亚洲午夜久久影院| 国产福利电影一区二区三区久久老子无码午夜伦不 | 18岁日韩内射颜射午夜久久成人| 久久精品人人做人人爽97| 久久久久女人精品毛片| 久久天天躁狠狠躁夜夜96流白浆 |