我试图在不添加参数的情况下定义协议方法,但找不到正确的语法。
这是定义(它有语法错误)
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
我不想使用第二个参数传递任何值。我的目的只是表明委托实例发生了一些事情。
我应该如何写定义?
我试图在不添加参数的情况下定义协议方法,但找不到正确的语法。
这是定义(它有语法错误)
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
我不想使用第二个参数传递任何值。我的目的只是表明委托实例发生了一些事情。
我应该如何写定义?
您的方法的第二部分格式不正确:
- (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::)
- (void)cameraOverlayViewDidTakePhoto:(CameraOverlayView *)cameraOverlay;
这是Objective-C约定的问题。您可以将其重写为:
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlayViewDidTakePhoto;