パラメータを追加せずにプロトコル メソッドを定義しようとしていますが、正しい構文が見つかりませんでした。
定義は次のとおりです (構文エラーがあります)。
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
2 番目のパラメーターで値を渡したくありません。私の目的は、デリゲート インスタンスに何かが起こったことを知らせることだけです。
定義はどう書けばいいですか?
パラメータを追加せずにプロトコル メソッドを定義しようとしていますが、正しい構文が見つかりませんでした。
定義は次のとおりです (構文エラーがあります)。
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
2 番目のパラメーターで値を渡したくありません。私の目的は、デリゲート インスタンスに何かが起こったことを知らせることだけです。
定義はどう書けばいいですか?
メソッドの 2 番目の部分が正しくフォーマットされていません。
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
スペースがあるため、パラメーターが必要です。代わりに、didTakePhoto
次のように、その部分をメソッド名に組み込みます。
- (void)cameraOverlayViewDidTakePhoto:(CameraOverlayView *)cameraOverlay;
基本的に客観的なcでは、パラメータの後にメソッド名の部分をぶら下げることはできません...だから:
違法:
-(void)methodWith:(int)theInt forMyMom;
正常:
-(void)methodForMyMomWithInt:(int)theInt;
合法だが奇妙な
-(void)method:(int)theInt :(int)theOtherInt;
セレクター: @selector(method::)
これは、Objective-C 規約の問題です。次のように書き換えることができます。
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlayViewDidTakePhoto;