<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      objective里面的單例模式

      在java程序中,最常用的就是單例模式,這個(gè)在objective-c一樣可以使用,但是和java還是有一點(diǎn)區(qū)別。

      簡(jiǎn)單看一下java里面如何定義一個(gè)單例模式

      public class SingletonClass {

      private static SingletonClass instance = null;

      private SingletonClass(){

      }

      public static final getInstance(){

      synchorinzed(this){

      if(instance == null){

      instance = new SingletonClass();

      }

      return instance

      }

      }

      }

      在ios開(kāi)發(fā)中,還是有一點(diǎn)區(qū)別的。在objective-c中,對(duì)象都是可以通過(guò) [SingletonClass alloc]進(jìn)行內(nèi)存分配的,這樣就可以返回一個(gè)新的實(shí)例對(duì)象,并且alloc方法都是public的,沒(méi)有不讓類進(jìn)行調(diào)用,所以必須重寫alloc的方法。

      一般情況下,alloc方法都是調(diào)用 +(id)allocWithZone:(Zone *) zone 進(jìn)行初始化的,所以只需要在 allicWithZone里面進(jìn)行初始化狀態(tài)的判斷即可

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      +(id) allocWithZone:(NSZone *)zone{
       
      if( instance == nil){
       
      instance = [super allocWithZone:zone ];
       
      }
       
      return instance;
       
      }

      在objective-c里面,alloc 方法是 負(fù)責(zé)給類的實(shí)例分配內(nèi)存地址,簡(jiǎn)單說(shuō),就是初始化實(shí)例成員的內(nèi)存地址,這個(gè)地址是根據(jù) 初始地址 + 偏移地址 來(lái)進(jìn)行計(jì)算的。其實(shí)在java里面,也會(huì)有這個(gè)過(guò)程,只不過(guò)java在靜態(tài)語(yǔ)言,在編譯成clas文件里面的時(shí)候,類里面的所有實(shí)例屬性都記錄在一個(gè) 變量表里面,一般是通過(guò)變量表 間接關(guān)聯(lián)到對(duì)應(yīng)的對(duì)應(yīng)的實(shí)際地址。而objective-c則是根據(jù)類屬性相對(duì)于基礎(chǔ)地址的偏移來(lái)進(jìn)行計(jì)算的

      這個(gè)是比較好理解的 ,比如我們定義了一個(gè) int * p 一個(gè)指針,如果使用p[5],則是相對(duì)p這個(gè)指針指向的地址 + 2 *5 作為p[5] 的地址。

      在alloc方法只是給實(shí)例變量分配內(nèi)存地址,并且將其retain計(jì)數(shù)增加1 ,這個(gè)時(shí)候?qū)τ谥羔樧兞浚涞刂分赶虻闹刀歼€是nil的,想要初始化,則是通過(guò) init開(kāi)頭的方法進(jìn)行初始化的。在objective-c里面,分配地址和初始化是分開(kāi)進(jìn)行的,java里面的 new 關(guān)鍵字包括分配地址 加 初始化的過(guò)程,類似java里面的構(gòu)造函數(shù)。但是objective-c 都是公開(kāi)的,沒(méi)有java里面的私有構(gòu)造函數(shù)這個(gè)說(shuō)法。

      主站蜘蛛池模板: 色悠久久网国产精品99| 偷拍激情视频一区二区三区| 国产成人女人在线观看| 国产精品午夜福利资源| 欧美国产激情18| 精品偷自拍另类精品在线| 波多野结系列18部无码观看AV | 国产蜜臀精品一区二区三区| av中文字幕在线二区| 国产一级精品在线免费看| 偷拍精品一区二区三区| 国产福利深夜在线观看| 亚洲香蕉av一区二区蜜桃| 久久综合久色欧美综合狠狠| 中文字幕亚洲男人的天堂网络| 日本精品人妻无码77777| 成人av天堂网在线观看| 东阿县| 日日噜久久人妻一区二区| 国产亚洲精品VA片在线播放| 亚洲高清最新AV网站| 人妻中文字幕不卡精品| 一本色道国产在线观看二区| 激情六月丁香婷婷四房播| 麻豆国产va免费精品高清在线| 亚洲精品一区二区三区免| 人妻蜜臀久久av不卡| 国产精品国语对白露脸在线播放| 91精品国产自产91精品| 亚洲无线码一区在线观看| 久久精品午夜视频| 中国丰满少妇人妻xxx性董鑫洁| 久久精品99国产精品亚洲| 国产精品视频中文字幕| 伊人色综合一区二区三区影院视频| 亚洲第一天堂无码专区| 欧美高清一区三区在线专区| 久久精品国产亚洲av麻豆小说| 国产精品1区2区3区在线观看| 色偷偷亚洲精品一区二区| 久久精品国产一区二区蜜芽|