1 字串連結
預先處理程式會自動將相鄰的字串常量連結到一起。字串可以通過0或多個空白字元來分割。如:
“a” “ character ”
“String”
等價於:”a character string”
常量字串對象可通過在常量字串前面放置一個@字元來建立,這種對象的類型是NSConstantString。同樣預先處理程式會將相鄰的常量字串對象連結在一起:例如:
@”a” @”character “
@”string”
等價於:@”a character string”
2 @selector中的方法中的冒號
在調用respondsToSelector:@selector(method)時,這個method只有在該方法存在參數時需要:,如果該方法不需要參數就不需要加這個冒號。否則,編譯不會報錯,只是執行返回的值不對。當然如果方法有多個參數,需要多個冒號,參數有名稱的需要帶上參數名稱。
如:有如下方法:
-(NSString*)toXmlString;
此時調用類似於:
[self respondsToSelector:@selector(toXmlString)]
如果toXmlString方法的定義為:
-(NSString*)toXmlString:(NSString*)prefix;
那麼調用就必須加上冒號,如:[self respondsToSelector:@selector(toXmlString:)]
3 Soap時間表示,以及時間日期轉換
Soap在傳輸中的日期時間的格式一般是:yyyy—MM-dd’T’HH:mm:ss’Z’
(NSString*)dateToSoapString(NSDate*)date{
NSDateFormatter* dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@”yyyy—MM-dd’T’HH:mm:ss’Z’”];
NSString* dateString=[dateFormatter stringFromDate:date];
[dateFormatter release];
return dateString;
}
yyyy—MM-dd’T’HH:mm:ss.SSS’Z’ 對應的資料為:2010-07-08T07:00:53.000Z
關於時間格式請參考:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
4 局部變數
局部變數一般是在方法中定義的用於儲存臨時資料的變數。方法的參數名也是局部變數。執行方法時,通過方法傳遞的任何參數都被複製到局部變數中。因為方法使用的是參數的副本,所以不能改變通過方法傳遞的原值,當然如果傳遞是類執行個體的話,類執行個體中的對象或屬性是可以通過方法改變其值的。
如果在變數前面加上一個static關鍵字的話,那麼變數就變成了靜態變數。靜態變數只在程式開始執行時初始化一次,並且自始至終只儲存一個值:
如:
-(void) showPage{
static int pageCount=0;
…
pageCount++;
…
}
該方法的pageCount可以記錄showPage被調用的次數。