iOS のチュートリアルでこのステートメントを見たことがあります。これは、sender オブジェクトの velue を別のオブジェクト s に向けることを意味しますか?
UISlider *s=(UISlider *)sender;
誰でも私を助けることができますか?事前に感謝します
iOS のチュートリアルでこのステートメントを見たことがあります。これは、sender オブジェクトの velue を別のオブジェクト s に向けることを意味しますか?
UISlider *s=(UISlider *)sender;
誰でも私を助けることができますか?事前に感謝します
として型キャストsender
していUISlider*
ます。あなたはコンパイラに「私を信じてください、私は知っています」と言っていsender
ますUISlider*
。に割り当てられると、改善された型チェック ( の場合) および警告 (が指定された型の objc オブジェクトの場合) なしで としてs
使用できます。でない場合、実行時にプログラムでエラーが発生する可能性があります。s
UISlider
id
sender
UISlider
sender
また、多くの場合、アクションを実行したオブジェクト/コントロールに関連付けられており、通常は typeid
で宣言されていることにも注意してください- (IBAction)performSomeAction:(id)sender
。その場合、UISlider * s = (UISlider*)sender;
冗長です。私はシンプルな方が好きUISlider * s = sender;
です。
タイプキャスティングです。ここで、送信者は type に型キャストされUISlider
ます。
C
構文に似ていますが、
int x = (int)aValue;
通常、sender パラメーターを受け取るメソッドは、sender
asの型に名前を付けますid
。id
は一般的なオブジェクト ポインターです。そのコードのポイントは、送信者の型をキャストして、UISlider*
コンパイラの警告を生成せずに UISlider のメソッドを呼び出すことができるようにすることです。