成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于Objective-C類聲明相關學習文檔

移動開發 iOS
本文主要介紹了Objective-C 類聲明,定義,實例,初始化,很詳細的都有介紹到,來看本文詳細內容。

關于Objective-C類聲明相關學習文檔是本文要介紹的內容,主要介紹了Objective-C 類聲明,定義,實例,初始化。Objective-C中,調用方法被稱為發送消息 ,通知對象執行某種操作。語法如下:[shape draw]

一、類聲明(接口):

  1. @interface TestCoop : NSObject {  
  2.     int iMonth;  
  3.     int iYear;  
  4.     int iDay;  
  5. }  
  6.  
  7. - (void) setYear: (int) iYear;  
  8. - (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;  
  9. - (void) setData: (int)Year iMonth:(int)iMonth iDay:(int)iDay;  
  10. - (void) displayDateInfo;  
  11.  
  12. @end 

1、前面的短線/- 表示這是Objective-C方法的聲明,用來區分函數原型(C語言中)與(Objective—C中)方法聲明的方式。短線后面是方法的返回類型/比如( void) ,位于圓括號中。

1.1 注意,方法的聲明在括號后面,@end之前 {}區域里只有變量的定義,這點和C++很不一樣。

2、返回類型后面自然是函數名字,和C語言一樣的,不同的是參數聲明方法

2.1、無參數的函數后面不需要加括號和冒號,直接是函數名結束加分號,比如: - (void) displayDateInfo;

2.2、有參數的后面加冒號和參數類型名字,比如:

  1. - (void) setDay: (int) iDay; //單個參數  
  2. - (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;//多個參數 

objective還提供一種中綴符的語法,方法的名稱和參數都是和在一起的:

參數前面多加一個標識符,通常和變量名一樣,如下:

  1. - (void) setData: (int)Year iMonth:(int)iMonth iDay:(int)iDay;//多個參數 

蘋果推薦使用第二種方法,雖然繁瑣點。

二、類實現:

  1. @implementation TestCoop  
  2. - (void) displayDateInfo{  
  3.     NSLog(@"Today is: %d.%d.%d/n", iYear, iMonth, iDay);  
  4. }  
  5. - (void) setYear: (int) year{  
  6.     iYear = year;  
  7. }  
  8. - (void) primalSetData: (int)year :(int)month :(int)day{  
  9.     iYear = year;  
  10.     iMonth = month;  
  11.     iDay = day;      
  12. }  
  13. - (void) setData: (int)year iMonth:(int)month iDay:(int)day{  
  14.     iYear = year;  
  15.     iMonth = month;  
  16.     iDay = day;  

1、注意:類的方法實現部分函數參數不能和聲明部分一樣,就是不能和類變量同名,否則會隱藏初始變量。

比如:

  1. - (void) setYear: (int) year{ //right  
  2.     iYear = year;  

改成和聲明時一樣的話,如下:

  1. - (void) setYear: (int) iYear{ //error  
  2.     iYeariYear = iYear;  

明顯出問題了,xcode編譯會報warnging,就是初始變量被隱藏,其實本質就是變量作用域的問題,你局部變量和類變量名字一樣,

當然訪問不到了。

根由:聲明的時候Objective-C喜歡用類變量的名字來代替函數參數名,不知道為啥,真是個糾結的問題。(要是從聲明的時候就不用,就OK了,也不用到定義時再去改,不知道蘋果那樣做的理由)。

三、實例化對象

  1. int main (int argc, const char * argv[]) {  
  2.     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
  3.  
  4.     // insert code here...  
  5.     //NSLog(@"%d-,%s %@/n", 12, "hel123lo", @"123");  
  6.       
  7.     TestCoop *ptest = [TestCoop new];   
  8.     [ptest primalSetData :2009 :03 :05];  
  9.     [ptest displayDateInfo];  
  10.     [ptest setData:2010 iMonth:06 iDay:06];  
  11.     [ptest displayDateInfo];  
  12.     [ptest setYear:1987];  
  13.     [ptest displayDateInfo];  
  14.     [pool drain];  
  15.     return 0;  

運行后會輸出如下信息:

  1. Today is: 2009.3.5  
  2. Today is: 2010.6.6  
  3. Today is: 1987.6.6 

通過向需要創建對象的類發送new消息,可以創建各個對象。

然后向對象發送各種消息來操作對象。

//類的初始化

不過,cocoa習慣使用alloc和init來創建對象,而不是new

使用alloc來分配內存,并使用init來初始化,會將這塊內存全部清0,bool型為NO,int型為0,指針為nil

上面的創建對象代碼改成如下:

  1. TestCoop *ptest = [[TestCoop alloc] init]; 

小結:關于Objective-C類聲明相關學習文檔的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-15 17:06:01

Objective-CNSLog

2011-08-12 10:27:52

Objective-C對象

2011-08-22 15:31:35

Objective-C協議

2011-07-06 14:12:14

Objective-C

2011-08-05 14:03:39

Objective-C 對象 模板

2011-08-17 12:03:36

Objective-C

2011-08-15 17:29:36

Objective-C構造函數

2011-05-11 14:06:49

Objective-C

2011-08-04 14:58:37

Objective-C Cocoa NSString

2013-08-21 14:57:42

objective-c問題

2011-08-17 11:15:22

Objective-C語法

2011-07-20 13:34:37

Objective-C self.

2011-08-15 14:02:36

Objective-C

2011-08-17 15:37:23

Objective-C垃圾收集

2011-07-25 10:03:06

Objective-C 委托

2011-08-05 14:16:47

Objective-C 變量 方法

2011-08-04 15:14:39

Objective-C 數據類型

2011-07-25 10:30:41

Objective-C Xcode 重構

2011-07-25 11:02:29

Objective-C Xcode 標簽

2011-07-25 10:14:13

Objective-C Xcode
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清一区二区三区 | 精品www| 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 91国产视频在线 | 在线小视频 | 日韩免费三级 | 黄片毛片在线观看 | 国产精品久久久久久中文字 | 成人av高清 | 久久久国产精品一区 | 成人免费视频网站 | 免费看爱爱视频 | 成人午夜免费在线视频 | 中文字幕乱码视频32 | 五月激情婷婷六月 | 亚洲婷婷六月天 | 国产精品高潮呻吟久久av野狼 | 美女黄18岁以下禁止观看 | 亚洲精品乱码久久久久久按摩观 | 欧美一区二区三区精品 | 国产精品久久久久久久免费大片 | 精品在线99 | 国产美女网站 | xx性欧美肥妇精品久久久久久 | 日韩二区 | 在线中文字幕视频 | 一区二区三区网站 | 精品香蕉一区二区三区 | 国产精品免费在线 | 国产毛片久久久 | 国产精品视频一区二区三区四蜜臂 | 成人在线视频免费看 | 在线国产视频 | 久久99精品久久久水蜜桃 | 精品在线一区 | 91玖玖| 激情福利视频 | 久久综合99| 色欧美片视频在线观看 | 精品国产一区二区三区性色av | 一区二区三区在线 |