我已經通過蘋果的「你的第二個iOS應用程序」教程的學習」,我已經注意到,每次我用一個NSDateFormatter
生產日期字符串,我預期蒙上輸入日期對象。爲什麼這裏需要演員?
如( Page - 。「爲了實現configureView法」
BirdSighting *theSighting = self.sighting;
if (theSighting) {
self.birdNameLabel.text = [theSighting name];
self.locationLabel.text = [theSighting location];
self.dateLabel.text = [formatter stringFromDate:(NSDate *)theSighting.date]; // Here
}
但是我知道,在BirdSighting
類的date
屬性始終是一個NSDate
對象下)
所以我想知道爲什麼本教程總是強調輸入,是否有某種客觀 - 約定或框架對話建議您這樣做?如果是的話,爲什麼?
即使它是'id',轉換仍然是不必要的,因爲所有指向對象「子類」(注意空氣引號)的結構體objc_object都可以隱式轉換。如果處理一個不透明的結構,比如'CoreFoundation'或'CoreGraphics',那麼只需要進行強制轉換。 – 2012-04-16 14:59:22
我的意思是代碼清晰而不是彙編,但你絕對正確(像往常一樣!) – jrturton 2012-04-16 15:43:34