天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

C++開發者快速學習Objective-C語言核心語法

  本文將Objective-C討論了語言的核心語法。這部分開始詳述一些具體的語法。正如你期待的一樣,涉及到了定義和類。

  類并不是特殊的

  在Smalltalk中,類是具有一些特性的對象。在Objective-C中也一樣。一個類是一個對象,對象回應消息。Objective-C和C++都分離了對象分配和初始化。

  在C++中,對象分配通過新的操作。在Objective-C中,這樣的操作是通過給類發送分配消息—調用malloc()或者一個等價。

  C++中的初始化是通過調用一個與類同名的函數。Objective-C并沒有區別初始化方法和其他方法,但出于慣例缺省的初始化方法就是初始化。

  當你聲明一個方法讓實例去回應,聲明通常已“-”開頭,并且“+”用作類的方法。在文檔中對這些消息使用一些前綴是很普遍的,所以你也可以說+alloc和-init來暗示alloc是傳給一個類,init傳給實例。

  類在Objective-C中,正如在其他一些面向對象語言,都是對象工廠。大多數類不用自行實現+alloc,而是從他們的父類中繼承。在NSObject中,父類在大多數Objective-C程序中,+alloc方法調用+allocWithZone:.使NSZone作為一個參數,一個C結構包含對象分配的一些策略。回顧19世紀80年代,當Objective-C用在NeXTstep來實現設備驅動和只有8MB內存25MHZ的CPU機器的GUI上面時,NSZone對優化非常重要。同時,這或多或少的被Objective-C程序員所忽視。(很有可能成為象NUMA構架一樣流行,更普遍。)

  眾多優秀的特性之一就是對象創建語義是由庫定義的并且語言不是類簇的思想。當你傳一個-init消息給對象時,它返回一個初始化對象。這可能是你發送消息的那個對象,但不一定肯定就是。這和其他初始化程序一致的。很有可能一些公共類的特殊子類在不同數據上更有效。

  實現這個特性的通用方法叫做isa-swizzling。正如我前述,Objective-C對象是C結構,這些結構第一個元素是指向類的指針。這個元素是可存取的,正如其他實例變量一樣;你可以在運行時通過分配新值來改變對象的類。當然,如果你對對象的類設置在內存中有著不同的布局,這些設置可能嚴重錯誤。

  然而,你可以通過一個父類來定義布局和通過子集的集合定義行為,舉例來說,這個技術用在標準化字符串類(NSString),它對不同的文本字符集、靜態事物和其它一些有著各種各樣的實例。

  因為類是對象,你可以象操作對象一樣操作他們。舉例來說,你可以把他們放在集合。當我有一些輸入事件需要通過不同的類的實例來處理時我就使用這種格式。你需要創建一個目錄映射事件命名到類,然后為每一個輸入事件實例化一個對象。如果你在一個庫中這么做,它允許代碼的使用者輕松的注冊屬于他們自己的句柄。

  類型和指針

  Objective-C沒有公開允許在堆棧上定義對象。但并不是真的—很有可能在堆棧上定義對象,但有些困難,因為它破壞了對內存管理的一種假設。結果,每一個Objective-C對象都是一個指針。一些類型由Objective-C定義;這些類型在頭部定義作為C類型。

  在Objective-C中最普遍的3種類型就是id,Class和SEL。id就是指向Objective-C對象的指針,它等價于C語言中的void*,你可以映射任何對象指針類型指向它并且映射他指向其它的對象指針類型。

  你可以傳任何消息給id,但如果不支持的話會返回一個運行時異常。

  類是指向Objective-C類的指針。類是對象,所以也可以接收消息。類名是一種類型,不是可變的。標識符NSObject是一個NSObject實例的類型,但也可作為消息接受者。你可以獲得一個類,如下:

[NSObject class];          
        

it知識庫C++開發者快速學習Objective-C語言核心語法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品无夜久久久久久久久 | 成人国产精品日本在线 | 成年妇女免费播放 | 黑丝美女娇喘 | 在线高清电影理论片4399 | 亚洲1区2区3区精华液 | 在线二区 中文 无码 | 快穿女主有名器的H纯肉黄暴拉文 | 爆乳啪啪无码成人二区亚洲欧美 | 国产亚洲高清视频 | 床上色APP下载免费版 | 99视频国产热精品视频 | 国产亚洲精品欧洲在线视频 | 色欲国产麻豆一精品一AV一免费 | qvod电影资源| 精品国产福利在线视频 | 国产免费网站看v片在线 | 国产成人永久免费视频 | 美女裸露胸部100%无遮挡 | 国产亚洲精品久久久久久线投注 | 国产精品成人啪精品视频免费观看 | 亚洲A片不卡无码久久尤物 亚洲a免费 | 又大又硬又爽免费视频 | 久久精品国产亚洲AV久五月天 | 老子午夜伦不卡电影院 | 99综合之综合久久伊人 | 秋霞伦理电影在2017韩国在线伦 | 久久久久久久99精品免费观看 | 精品无人区一区二区三区 | lesbabes性欧美| 国产成人99久久亚洲综合精品 | 国产精品一库二库三库 | 秋霞午夜鲁丝片午夜精品久 | 小草观看免费高清视频 | 99热6精品视频6 | 健身房被教练啪到腿软H | 爱穿丝袜的麻麻3d漫画acg | 99精品影视 | 无套内射CHINESEHD | 久久久久久久久免费视频 | 亚洲国产在线观看免费视频 |