2011-06-30 21 views
0
-(void)rotateView:(id)sender { 
CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI); 
[sender setTransform:rotateTransform];//the error is shown here 
} 

この警告メッセージが表示され、-setTransform:foundという名前の複数のメソッドが表示されます。 #import AVFoundation/AVFoundation.hがヘッダファイルにある場合のみ表示されます。助言がありますか?適切なクラス型と警告のおかげ複数のメソッド '-setTransform:'が見つかりました

+0

townsend:あなたが直面しているのとほぼ同じ問題について、私の(編集した)ブログ記事をご覧ください。今日はあなたの幸せな一日! ;) – Regexident

答えて

5

キャストsenderは離れて行く必要があります:senderとして

[(YourClassHere *)sender setTransform:rotateTransform]; 

は、Xcodeのは、それが何であるかを、実際のクラス型を知ることができないタイプidようとするそのどの方法でrotateView:に渡されますコール。

編集:偶然ちょうど今日Cocoa With Love名声のマット・ギャラガーは、Objective-Cの中idにあいまいなメソッドを呼び出すことによって引き起こされる問題のすべての種類についてarticleを発表しました。

+0

もっと良い解決策は、 'YourClassName'クラスの' setTransform: 'メソッドの名前を変更して、完全に競合を避けることです。しかし、それは不可能かもしれません。 – bbum

+0

シンプルで簡単です。 – AsifHabib

関連する問題