0

iOS のチュートリアルでこのステートメントを見たことがあります。これは、sender オブジェクトの velue を別のオブジェクト s に向けることを意味しますか?

UISlider *s=(UISlider *)sender;

誰でも私を助けることができますか?事前に感謝します

4

3 に答える 3

1

として型キャストsenderしていUISlider*ます。あなたはコンパイラに「私を信じてください、私は知っています」と言っていsenderますUISlider*。に割り当てられると、改善された型チェック ( の場合) および警告 (が指定された型の objc オブジェクトの場合) なしで としてs使用できます。でない場合、実行時にプログラムでエラーが発生する可能性があります。sUISlideridsenderUISlider

senderまた、多くの場合、アクションを実行したオブジェクト/コントロールに関連付けられており、通常は typeidで宣言されていることにも注意してください- (IBAction)performSomeAction:(id)sender。その場合、UISlider * s = (UISlider*)sender;冗長です。私はシンプルな方が好きUISlider * s = sender;です。

于 2012-11-15T07:14:12.750 に答える
0

タイプキャスティングです。ここで、送信者は type に型キャストされUISliderます。

C構文に似ていますが、

int x = (int)aValue;
于 2012-11-15T08:15:21.477 に答える
0

通常、sender パラメーターを受け取るメソッドは、senderasの型に名前を付けますididは一般的なオブジェクト ポインターです。そのコードのポイントは、送信者の型をキャストして、UISlider*コンパイラの警告を生成せずに UISlider のメソッドを呼び出すことができるようにすることです。

于 2012-11-15T06:53:36.240 に答える