在objective-c程式設計的教學中,有一個是關於訊息詳解的內容,但不是很能理解。
訊息發送(指令)必須寫在一對方括號中,並且必須包含以下兩份。
指針,指向接收訊息的物件。
方法名,要觸發的方法的方法名。
但是我看到例子裡,好像有的訊息是沒有指標的,程式碼如下:
NSDate *now = [NSDate date];
NSLog(@"the new date lives at %@", now);
double seconds = [now timeIntervalSince1970];
NSLog(@"It has been %f seconds since the start of 1970.", seconds);
在第三行程式碼裡,now
是一個指針,我可以理解。但在第一行程式碼裡,好像訊息發送是沒有指針的,也許我的理解有誤,NSDate
就是一個指針,只是我不知道。
希望有好心人幫我〜
將近一年的時間因為工作太忙,沒有好好學習,前段時間專案告一段落,又捧起書本。結果看到上面的一段內容還是無法完全理解,或是說不知道自己理解的是否正確,還是回來這裡再問大家吧,謝了!
我找到了英文原版的這部份內容,如下:
NSDate *now = [NSDate date];
[NSDate date]
NSDate
the receiver : a pointer to the object or class that has the method that you want to execute.
date
the selector : the name of the method that you want to execute
selector這一段可以理解,但是NSDate
receiver
這一段,我還是理解得比較模糊,我理解的是擁有執行方法的指針對像或者類?可以點撥一下我麼?謝謝大家了!
NSDate
就是接收訊息的對象這裡的
指针
并不指代C语言中的指针类型
, 這裡應該是翻譯或表達問題。