2016-04-19 10 views
1

現在、私は、iOS開発に関するスタンフォード講演に従っています。私は、スマイリーフェイスのサイズを拡大または縮小できるピンチジェスチャーを作成します。ここでは、元のコードは次のとおりです。Objective c selector 'scale'で宣言されたメソッドがありません

faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: "scale:")) 

しかし、Xcodeのは、その "no method declared with Objective c selector 'scale'" を訴えました。

代わりに"scale:" with Selector("scale:")の代わりに同じエラーメッセージが表示されました。私はオンライン研究のビットを行なったし、迅速2.2から、セレクタの構文は#selector(MyClass.methodName)に変更されているので、私は

faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: #selector(FaceView.scale))) 

この時にコードの行を変更したことが分かった

は、エラーメッセージはありません表示されますが、私がプロジェクトを実行し、シミュレータのスマイリーフェイスを拡大または縮小しようとしたとき、サイズはまったく変わりません。

+1

私はスケールがパラメータであると思う:function ...スウィフト2.2のシンタックスは '#selector(FaceView.scale(_ :)) ' –

+0

です。セレクタに_:を追加しましたが、ピンチはまだ動作しません。申し訳ありませんが、私の質問があなたに馬鹿に聞こえる場合、私はちょうどこれの初心者です。あなたは他の可能性について考えてもらえますか?あなたの助けをもう一度ありがとう! – Thor

+1

これについて何も愚かなことはありません...今はブレークポイントでチェック...メソッドと呼ばれるかどうかは –

答えて

3

最後のリリース以降に変更されたようです。あなたはドキュメントはので、これはあなたのスタンフォード大学の場合には正しい構文

あるんとして #selector(MyClass.methodName)を使用することが提案されている

あなたは規模と呼ばれる方法でFaceViewを表示上のクラスと呼ばれている講義します。

だから、MyClassのはFaceViewで、セレクタは#selector(FaceView.scale)

だけでなく、最終ラインが faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: #selector(FaceView.scale)))

になります私はちょうど同じ問題に直面し、屋を助けたことを願っていますでしょう;)

関連する問題