標籤: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