Objective c 目标C:跨班级使用多个参数
我在名为GameManager的类中有以下声明:Objective c 目标C:跨班级使用多个参数,objective-c,ios,cocos2d-iphone,audio,Objective C,Ios,Cocos2d Iphone,Audio,我在名为GameManager的类中有以下声明: -(void)playBackgroundTrack:(NSString*)trackFileName isAmbient:(BOOL*)ambient { } 我想打个电话 [[GameManager sharedGameManager] playBackgroundTrack:BACKGROUND_TRACK isAmbient:NO]; 或 但我得到一个警告: 语义问题:实例方法“-playBackgroundTrack:isAmbi
-(void)playBackgroundTrack:(NSString*)trackFileName isAmbient:(BOOL*)ambient {
}
我想打个电话
[[GameManager sharedGameManager] playBackgroundTrack:BACKGROUND_TRACK isAmbient:NO];
或
但我得到一个警告:
语义问题:实例方法“-playBackgroundTrack:isAmbient:”未找到(返回类型默认为“id”)
尝试使用isAmbient参数会崩溃
如果我在这两个位置都禁用isAmbient声明,它可以正常工作(但当然我不能使用我想要的参数!)。您应该在声明中使用纯
BOOL
,而不是BOOL*
,如下所示:
-(void)playBackgroundTrack:(NSString*)trackFileName isAmbient:(BOOL)ambient;
将isAmbient的参数类型从
BOOL*
更改为BOOL
第一段代码不是声明,而是定义。声明是签名,以分号结尾,通常放在头文件中
然后,您需要在声明中包含该类头文件,以便您的另一个类知道该方法存在。这将解决“找不到方法”问题
顺便说一下,您可能想使用一个普通BOOL,而不是指向它的指针。这可能是撞车的原因。谢谢,我没想清楚!需要更多的代表才能投票you@Eric没关系,没有必要对这个答案投赞成票。不过,接受其中一个答案是一个好主意:这将使您的“%”接受答案的百分比”保持在较高水平,这对您将来提出更多问题很有帮助。祝你好运谢谢,我没想清楚!需要更多的代表投票支持你
-(void)playBackgroundTrack:(NSString*)trackFileName isAmbient:(BOOL)ambient;