私はAppleの「あなたのセカンドIOSアプリの」チュートリアル」を通じて取り組んできたと私は毎回、私は私が入力された日付オブジェクトをキャストすると予想しています日付文字列を生成するためのNSDateFormatter
を使用することに気付きました。ここでキャストが必要なのはなぜですか?
例えば( Page - 。私はBirdSighting
クラスにdate
プロパティは常にNSDate
オブジェクトであることを知っていることが
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
}
)「configureViewメソッドを実装するには、」下
だから私は、なぜ思っていましたチュートリアルでは常に入力をキャストしていますが、これを行うことをお勧めしている何らかの客観的なCのコンベンションやフレームワークのコンベンションはありますか?もしそうなら、なぜですか?
"id"だったとしても、 "struct objc_object"というオブジェクト( "airclass"に気づく)へのすべてのポインタとしてのキャストは不要であり、互いに暗黙的に変換することができます。 'CoreFoundation'や' CoreGraphics'のように不透明な構造体を扱うのであれば、キャストが必要な唯一の場所です。 –
私は、コンパイルではなくコードの明快さの観点から必要であることを意味しましたが、あなたは絶対に正しいです(いつものように!) – jrturton