黑 馬 程 序 員_視頻學習總結<Objective-C>----03 self、NSString、@property和@synthesize、id

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   strong   io   

 ---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------

 

 一、self1.誰調用了當前方法,self就代表誰。兩種情況:self出現在對象方法裡,self就代表對象;self出現在類方法裡,self就代表類。2.對象方法利用“self→成員變數名”訪問當前對象內部成員變數。3.[self 方法名]可以調用其它對象方法、類方法。

 

二、NSString1.NSString簡介:NSString是一個字串處理類。OC字串也是一個對象,例如@“sfhgj”也是一個對象,它的類就是NSString,在Foundation架構中。2.NSString的類方法length,可以返回字串字數。

 

三、@property和@synthesize

1、@property @synthesize關鍵字

注意:這兩個關鍵字是編譯器特性,讓xcode可以自動產生getter和setter的聲明和實現。

(1)@property 關鍵字

@property 關鍵字可以自動產生某個成員變數的setter和getter方法的聲明

@property int age;

編譯時間遇到這一行,則自動擴充成下面兩句:

- (void)setAge:(int)age;- (int)age;

(2)@synthesize關鍵字

@synthesize關鍵字協助產生成員變數的setter和getter方法的實現。

文法:@synthesize age=_age;

相當於下面的代碼:

- (void)setAge:(int)age{_age=age;}- (int)age{Return _age;}

(3)關鍵字的使用和使用注意

類的聲明部分:

類的實現部分:

主函數:

新版本中:

類的聲明部分:

類的實現部分:

主函數:

 

(1)在老式的代碼中,@property只能寫在@interface  @end中,@synthesize只能寫在@implementation   @end中,自從xcode 4.4後,@property就獨攬了@property和@synthesize的功能。

(2)@property int age;這句話完成了3個功能:1)產生_age成員變數的get和set方法的聲明;2)產生_age成員變數set和get方法的實現;3)產生一個_age的成員變數。

注意:這種方式產生的成員變數是private的。

3)可以通過在{}中加上int _age;顯示的聲明_age為protected的。

(4)原則:get和set方法同變數一樣,如果你自己定義了,那麼就使用你已經定義的,如果沒有定義,那麼就自動產生一個。

(5)手動實現:

1)如果手動實現了set方法,那麼編譯器就只產生get方法和成員變數;

2)如果手動實現了get方法,那麼編譯器就只產生set方法和成員變數;

3)如果set和get方法都是手動實現的,那麼編譯器將不會產生成員變數。

四、id

id 是一種類型,萬能指標,能夠指向\操作任何的對象。

注意:在id的定義中,已經包好了*號。Id指標只能指向os的對象。

id 類型的定義

Typedef struct objc object{Class isa;} *id;

局限性:調用一個不存在的方法,編譯器會馬上報錯。

 

 

 

---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------

詳細請查看:www.itheima.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.