• <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>

            羅朝輝(飄飄白云)

            關(guān)注嵌入式操作系統(tǒng),移動(dòng)平臺(tái),圖形開(kāi)發(fā)。-->加微博 ^_^

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              85 隨筆 :: 0 文章 :: 169 評(píng)論 :: 0 Trackbacks

            Obj-C 類(lèi)方法簡(jiǎn)介

            羅朝輝(http://m.shnenglu.com/kesalin/

            CC許可,轉(zhuǎn)載請(qǐng)注明出處

            一,Objective C  的類(lèi)方法(class method),即 static 方法,是用 + 修飾的方法。類(lèi)方法是屬于類(lèi)對(duì)象的,所以無(wú)需創(chuàng)建類(lèi)的實(shí)例對(duì)象我們就可以直接使用它們。使用形式為:

            [ClassName classMethod];

            在這里 ClassName 代表的就是一個(gè)類(lèi)對(duì)象,而不是作為一種類(lèi)型。類(lèi)名只有出現(xiàn)在接收消息的表達(dá)式中才代表一個(gè)類(lèi)對(duì)象,其他情況下都表示一種類(lèi)型。

            二,類(lèi)方法可以繼承自基類(lèi),就像普通的類(lèi)成員方法一樣。有一個(gè)特別的類(lèi)方法 + (void) initialize,在類(lèi)接收到任何消息之前,運(yùn)行時(shí)系統(tǒng)會(huì)向類(lèi)對(duì)象發(fā)送這個(gè)消息,因此我們可以在這個(gè)函數(shù)里對(duì)類(lèi)對(duì)象做一些初始化,比如初始化 static 變量等等。在 NSObject 中,該方法什么也不做。

            三,當(dāng)類(lèi)對(duì)象接收到一個(gè)消息卻沒(méi)有相應(yīng)的類(lèi)方法響應(yīng)時(shí),運(yùn)行時(shí)系統(tǒng)會(huì)去檢查是否存在一個(gè) root (通常是 NSObject)的實(shí)例方法能夠響應(yīng),如果能夠響應(yīng)就會(huì)執(zhí)行 root 的成員方法來(lái)響應(yīng)。只有在這種情況下,類(lèi)對(duì)象才能夠執(zhí)行實(shí)例方法!再次聲明類(lèi)對(duì)象執(zhí)行實(shí)例方法的條件:

            1,類(lèi)對(duì)象沒(méi)有相應(yīng)的類(lèi)方法來(lái)響應(yīng)某個(gè)發(fā)送至它的消息;
            2,root 類(lèi)定義了能夠響應(yīng)這個(gè)消息的實(shí)例方法。

            四,類(lèi)方法的返回值類(lèi)型默認(rèn)為 id,也能接受不定參數(shù),這些都與實(shí)例方法是一致的。例如:

            + makeGroup:group, ...;

            五,在類(lèi)方法中使用 self 和 super,這時(shí) self 和 super 指代的都是類(lèi)對(duì)象,而非實(shí)例對(duì)象,這一點(diǎn)要特別注意。推薦的工廠方法寫(xiě)法如下,在這里使用 self class 而不是直接寫(xiě)類(lèi)名,是為了應(yīng)對(duì)子類(lèi)調(diào)用該函數(shù)的情況。
            + (id) getInstance
            {
                id instance = [[[self class] alloc] init];
                return [instance autorelease];
            }

            posted on 2011-11-01 17:14 羅朝輝 閱讀(2806) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): Cocoa 開(kāi)發(fā)

            評(píng)論

            # re: [Cocoa]Obj-C 類(lèi)方法簡(jiǎn)介[未登錄](méi) 2011-11-01 19:23 無(wú)名
            還有現(xiàn)在的匿名方法. ^(void^){}  回復(fù)  更多評(píng)論
              

            # re: [Cocoa]Obj-C 類(lèi)方法簡(jiǎn)介 2011-11-01 20:37 羅朝輝
            @無(wú)名
            你說(shuō)的是 block,block 不是類(lèi)方法吧  回復(fù)  更多評(píng)論
              

            久久综合给久久狠狠97色| 国产精品青草久久久久福利99| 青青青伊人色综合久久| 久久久久久久国产免费看| 久久国产精品无码一区二区三区 | 久久精品成人免费观看97| 久久久久亚洲?V成人无码| 亚洲伊人久久成综合人影院 | 久久久精品一区二区三区| 久久精品视屏| 日日躁夜夜躁狠狠久久AV| 久久av高潮av无码av喷吹| 性欧美大战久久久久久久| 青青草国产精品久久久久| 麻豆久久久9性大片| 无码人妻久久一区二区三区蜜桃| 久久久久亚洲AV无码观看| 国产99久久久国产精品小说| 欧美色综合久久久久久| 狠狠色丁香久久综合婷婷| 久久精品一区二区三区不卡| 一个色综合久久| 欧美成a人片免费看久久| 久久综合久久综合九色| 精品国际久久久久999波多野| 丰满少妇人妻久久久久久 | 亚洲中文字幕无码久久综合网| 97久久婷婷五月综合色d啪蜜芽| 91久久国产视频| 久久国产精品波多野结衣AV | 国产精品视频久久| 国产叼嘿久久精品久久| 99久久99这里只有免费费精品| 久久久精品人妻一区二区三区蜜桃 | 久久国产热精品波多野结衣AV| 亚洲午夜精品久久久久久app| 草草久久久无码国产专区| 成人国内精品久久久久影院VR | 久久久精品日本一区二区三区 | 蜜臀久久99精品久久久久久小说 | 久久久久久国产精品免费无码|