【发布时间】:2013-05-23 07:07:17
【问题描述】:
我试图在不添加参数的情况下定义协议方法,但找不到正确的语法。
这里是定义(有语法错误)
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
我不想通过第二个参数传递任何值。我的目的只是表明委托实例发生了一些事情。
我应该如何写定义?
【问题讨论】:
标签: objective-c objective-c-protocol
我试图在不添加参数的情况下定义协议方法,但找不到正确的语法。
这里是定义(有语法错误)
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
我不想通过第二个参数传递任何值。我的目的只是表明委托实例发生了一些事情。
我应该如何写定义?
【问题讨论】:
标签: objective-c objective-c-protocol
您方法的第二部分格式不正确:
- (void)cameraOverlayView:(CameraOverlayView *)cameraOverlay didTakePhoto;
由于空间的原因,它需要一个参数。相反,将didTakePhoto 部分添加到方法名称中,例如:
- (void)cameraOverlayViewDidTakePhoto:(CameraOverlayView *)cameraOverlay;
【讨论】:
- (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;
【讨论】: