新手问题 - 多个参数

时间:2011-07-21 11:16:01

标签: objective-c

我正在尝试实现一个私有方法,该方法将NSMutableDictionary和Player对象作为其参数。因为它是一个私有方法,所以它存在的唯一位置是“.m”文件。

声明为

-(void) incrementScore: (NSMutableDictionary*) scoreboard  forPlayer: ( Player* ) player {

我将其称为如下:

      [ self incrementScore:deuceScore forPlayer:p];

然而,它不会编译 - 我得到了

  

可能无法响应消息-incrementScore:forplayer

我不确定我的错误在哪里 - 我是否需要在“.h”文件或“.m”文件中的其他地方声明方法,或者我的语法完全错误?

2 个答案:

答案 0 :(得分:0)

这只是一个警告而不是编译错误...(如果您更改了首选项以处理所有警告,如错误,那将是编译错误)。

调用该方法的行可能在(在.m文件中)声明方法之上。将方法移动到@implementation指令下方,或者使用调用行移动方法。警告/错误应该消失。

答案 1 :(得分:0)

编译器需要在使用之前在某处找到方法的声明。这可以通过三种方式完成:

  1. @interface文件中为类声明(公共).h中的方法。
  2. class extension(半私有@interface中声明方法,通常位于.m文件的顶部。
  3. 在首次使用它之前,在@implementation中的某处定义方法。