青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

拂曉·明月·彎刀

觀望,等待只能讓出現的機會白白溜走

  C++博客 :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::

以下筆記參考網站:http://blog.csdn.net/huanglx1984/archive/2009/07/06/4325377.aspx

  1. 目前好象只有Apple使用Objective-C作為其支持的語言吧。
  2. 與C++的不同之處有:
    • O-C中所有的類都必須繼承自NSObject。
    • O-C中所有對象都是指針的形式。
    • O-C用self代替this。
    • O-C使用id代替void*。
    • O-C使用nil表示NULL
    • O-Ck只支持單繼承。
    • O-C使用YES/NO表示TRUE/FALSE
    • O-C使用#import代替#include
    • O-C中用消息表示類的方法,并采用[aInstance method:argv]調用形式。
    • O-C支持反射機制
    • O-C支持Dynamic Typing, Dynamic Binding和Dynamic Loading
  3. 與C++的相同之處有:
    • 與C共享的部分一致。
    • 可以使用assert(BOOL), 一般用NSCParameterAssert(BOOL)代替。
  4. O-C中的命名前綴說明:
    • NS-:NextStep
    • CF-:Core Foundation
    • CA-:Core Animation
    • CG-:Core Graphics
    • UI-:User Interface
  5. O-C中的消息特殊性:
    • 調用消息的類可以不知道如何響應這個消息。如果它不知道如何處理這個消息,它會自動的將這個消息轉給其他的類,比如它的父類。
    • 調用消息的類可以是nil。在C++中,在使用類方法之前,我們都需要檢查對象是否為空,所以在實現析構函數的時候,常會有如下的代碼,如if (var) { delete var; } 但是在objective c中,我們就可以直接寫[var release]; 即使var == nil, 也不會有問題。
  6. O-C中的函數聲明格式有:
    • -/+ (return type) function_name;

    • -/+ (return type) function_name : (parameter type) parameter;

    • -/+ (return type) function_name : (parameter type) parameter1 otherParameter : (parameter_type) parameter2

    • 以上參數說明:-表示一般函數,+表示靜態函數。otherParameter是參數的別名(第一個參數的別名省略),在函數調用時方便指定。

  7. O-C中的構造/析構函數

    • O-C中的init()/release()對應于C++的構造/析構函數。alloc()/dealloc()也就對應于C++的new和delete,其中的dealloc()由于引用計數的自動調用而不用手動調用。

    • O-C中父類的init()/release()函數需要子類的手動調用。而且每次都必須調用。不同于C++的自動調用。

    • 構造函數(- (id) init)調用形如:CSample* pSample=[CSample alloc] init];其中alloc(+ (id) alloc)是繼承來的static函數,init是繼承來的一般函數,如重寫一般函數時,則相當于C++的覆蓋(不帶參數)或重載(帶參數)。

    • 析構函數(- (void) release)將引用計數減1,當=0時父類的release()會自動調用dealloc(- (void) dealloc);

  8. 當O-C沒有數據成員時,可省略{},建議保留。

  9. 繼承下來的方法,如:-(id) init可以頭文件中省略,建議保留

  10. 0-C中只有數據成員的訪問限制,沒有方法的訪問限制。

    • 同C++一樣,數據成員有三種訪問限制public, protected, private,缺省是protected。

    • 示例:@interface AccessExample: NSObject {
      @public
      int publicVar;
      @protected
      int protectedVar;
      @private
      int privateVar;
      }
      @end

    • 方法的訪問限制可通過Category實現

    • 示例:

      @interface MyClass

      - (void) sayHello {

      NSLog(@"Hello");

      }

      @end


      @interface MyClass(Private)

      - (void) kissGoodbye;

      @end

  11. O-C中沒有類的靜態變量,只有全局變量

  12. O-C中的數組NSArray可以保存不同類型的數據。

  13. O-C也支持run-time時的類類型檢查

    • - (BOOL) isKindOfClass: classObj
      用于判斷該對象是否屬于某個類或者它的子類

    • - (BOOL) isMemberOfClass: classObj
      用于判斷該對象是否屬于某個類(這里不包括子類)

    • - (BOOL) respondsToSelector: selector
      用于判斷該對象是否能響應某個消息。這里,我們可以將@selector后面帶的參數理解為C++中的函數指針。
      注意:1)不要忘了@ 2)@selector后面用的是(),而不是[]。3)要在消息名稱后面跟:,無論這個消息是否帶參數。如:[pSquare respondsToSelector:@selector(Set: andHeight:)]。

    • + (BOOL) instancesRespondToSelector: selector
      用于判斷該類是否能響應某個消息。這是一個靜態函數。

    • -(id) performSelector: selector :調用對象的selector方法。

    • conformsToProtocol 類似于respondsToSelector ,用于動態檢查某個對象是否遵守某個協議。

  14. Category:在沒有源代碼的情況下,為一個已經存在的類添加一些新的功能

    • 只能添加新的方法,不能添加新的數據成員

    • Category 的名字必須是唯一的

  15. Protocol:相當于C++中的純虛類

    • 形如:@interface MyDate: NSObject <Printing> { } @end
    • 使用:MyDate * dat = [[MyDate alloc] init]; id<Printing> var = dat; [var print]。
    • 說明:我們首先聲明了Printing 協議,任何遵守這個協議的類,都必須實現print 方法。在Objective C 中,我們通過<>來表示遵守某個協議。當某個類聲明要遵守某個協議之后,它就必須在.m文件中實現這個協議中的所有方法。使用id<Printing> 作為類型,而不是象C++中的Printing* var。
  16. IBOutlet, IBAction: 這兩個東西其實在語法中沒有太大的作用。如果你希望在Interface Builder中能看到這個控件對象,那么在定義的時候前面加上IBOutlet,在IB里就能看到這個對象的outlet,如果你希望在Interface Builder里控制某個對象執行某些動作,就在方法前面加上(IBAction)。
  17. 盡量避免在一行語句中進行兩層以上的嵌套
  18. 消息轉發:- (void) forwardInvocation: (NSInvocation*)anInvocation;

Technorati :
Del.icio.us :
Zooomr :
Flickr :

posted on 2009-08-25 08:39 一路風塵 閱讀(2587) 評論(2)  編輯 收藏 引用 所屬分類: iPhone編程

評論

# re: Objective-C學習筆記[未登錄] 2009-08-25 09:48 Davy.xu
OC是一種神奇的語言,火星編程語言  回復  更多評論
  

# re: Objective-C學習筆記 2009-08-25 17:28 wells
@Davy.xu
真逗!  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品一区二区三区婷婷月| 亚洲国产另类久久精品| 国产精品日韩久久久| 免费在线一区二区| 老司机免费视频一区二区三区| 性欧美大战久久久久久久免费观看| 亚洲在线日韩| 欧美中文日韩| 欧美成人在线免费观看| 欧美国产在线视频| 国产精品多人| 黄色欧美成人| 日韩视频免费观看| 亚洲欧美日韩一区二区三区在线| 亚洲自拍偷拍麻豆| 午夜精品国产更新| 欧美在线视频在线播放完整版免费观看 | 国产一区二区在线观看免费| 国产女人精品视频| 国内精品国语自产拍在线观看| 国产一区二区三区丝袜| 在线欧美三区| 这里只有精品电影| 午夜国产不卡在线观看视频| 性欧美video另类hd性玩具| 久久久国产精品亚洲一区| 一级日韩一区在线观看| 欧美午夜一区二区福利视频| 免费不卡欧美自拍视频| 久久国产精品第一页| 亚洲欧美精品suv| 亚洲伊人观看| 欧美一区二区三区免费看| 免费成人在线观看视频| 欧美资源在线观看| 亚洲一区二区三区免费在线观看| 在线性视频日韩欧美| 久久av在线看| 最新亚洲电影| 午夜精品三级视频福利| 欧美成人黑人xx视频免费观看| 国产精品久久久久久久久久免费看 | 麻豆精品精品国产自在97香蕉| 欧美日韩国产黄| 国产一区香蕉久久| 99精品欧美一区二区三区| 久久精品国产亚洲5555| 亚洲精品欧美日韩专区| 久久久另类综合| 国产精品一级二级三级| 在线一区观看| 亚洲美女色禁图| 欧美激情视频在线播放| 亚洲国产精品小视频| 久久美女性网| 欧美一区国产在线| 国产视频不卡| 久久五月激情| 欧美综合77777色婷婷| 国产精品网站在线播放| 午夜精品国产更新| 亚洲免费在线视频一区 二区| 国产精品久久999| 欧美一区二粉嫩精品国产一线天| 国产精品99久久久久久久vr| 国产精品99一区二区| 亚洲一区二区三区四区五区黄| 亚洲激情第一区| 欧美精选一区| 亚洲自拍偷拍一区| 亚洲欧美日韩成人| 国自产拍偷拍福利精品免费一| 久久一区精品| 国产精品免费视频观看| 毛片一区二区三区| 亚洲福利精品| 亚洲日韩第九十九页| 欧美另类高清视频在线| 在线视频精品一区| 亚洲一区精彩视频| 国内精品久久久久久久影视麻豆| 免费成人av资源网| 欧美国产日韩一二三区| 亚洲一区二区av电影| 亚洲欧美日韩综合一区| 影音先锋亚洲视频| 亚洲精品综合精品自拍| 国产麻豆午夜三级精品| 鲁大师成人一区二区三区| 你懂的国产精品永久在线| 99在线|亚洲一区二区| 亚洲影视综合| 尤物yw午夜国产精品视频明星| 91久久久久久国产精品| 国产精品视频观看| 嫩草成人www欧美| 欧美午夜在线观看| 久久综合婷婷| 国产精品啊v在线| 欧美v亚洲v综合ⅴ国产v| 欧美日一区二区在线观看| 久久精品免费看| 欧美日本在线观看| 久久青青草原一区二区| 欧美日韩视频在线一区二区 | 欧美日韩国产经典色站一区二区三区 | 国产偷国产偷亚洲高清97cao| 麻豆精品91| 国产精品九九| 亚洲精品免费观看| 亚洲国产经典视频| 欧美一级视频一区二区| 亚洲视频一二三| 欧美1区视频| 久久国产精品久久精品国产| 欧美日本国产精品| 欧美二区在线| 欧美在线观看视频一区二区| 欧美高清视频www夜色资源网| 久久久综合香蕉尹人综合网| 欧美午夜电影完整版| 最新国产拍偷乱拍精品| 精品999日本| 欧美一区二区福利在线| 亚洲欧美伊人| 欧美特黄一级| 亚洲精品亚洲人成人网| 亚洲精品国产拍免费91在线| 久久久久久亚洲综合影院红桃 | 亚洲精品一区二区三区99| 欧美中日韩免费视频| 亚洲麻豆国产自偷在线| 亚洲视频精品在线| 欧美成人午夜剧场免费观看| 免费短视频成人日韩| 激情五月婷婷综合| 久久久久欧美| 蜜臀av性久久久久蜜臀aⅴ| 国产综合视频在线观看| 久久激情网站| 另类激情亚洲| 亚洲国产欧美在线人成| 欧美暴力喷水在线| 亚洲娇小video精品| 亚洲免费观看高清在线观看| 美乳少妇欧美精品| 亚洲黄色影片| 亚洲制服av| 国产日韩欧美电影在线观看| 午夜精品久久久久久久| 久久精品一区二区三区四区 | 鲁鲁狠狠狠7777一区二区| 亚洲专区在线视频| 亚洲欧美中文字幕| 国产欧美日韩免费看aⅴ视频| 亚洲欧美中文另类| 久久久久久97三级| 亚洲电影第三页| 欧美日韩成人综合| 亚洲视频网在线直播| 午夜老司机精品| 红杏aⅴ成人免费视频| 欧美阿v一级看视频| 夜夜狂射影院欧美极品| 欧美一区二区三区免费视频| 激情综合色综合久久| 欧美成ee人免费视频| 一本一本a久久| 久久久精品午夜少妇| 亚洲美女免费精品视频在线观看| 国产精品福利网站| 久久九九全国免费精品观看| 亚洲高清中文字幕| 欧美亚洲专区| 亚洲精品一区二区网址| 国产精品男人爽免费视频1| 久久婷婷麻豆| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久久综合精品| 一区二区三区高清在线| 一色屋精品视频免费看| 欧美视频官网| 老巨人导航500精品| 亚洲午夜电影| 亚洲韩国青草视频| 久久精品主播| 亚洲欧美国产视频| 亚洲三级影片| 亚洲国产cao| 黄色一区二区三区四区| 国产精品mm| 欧美人与性禽动交情品 | 欧美激情中文字幕乱码免费| 欧美综合国产精品久久丁香| 一区二区成人精品 | 久久国产精品免费一区| 国产一区二区三区免费在线观看| 香蕉久久夜色精品国产| 一区二区三区www| 亚洲国产天堂网精品网站|