如何更改此方法以消除警告而不进行任何更改?

时间:2014-05-29 15:23:08

标签: objective-c xcode

所以这个问题:Warning-used as the name of the previous parameter rather than as part of the selector

回答了我的问题的一部分,但我真的不希望在这个方法中有任何改变,我对它如何工作有点困惑。这是整个方法:

-(void) SetRightWrong:(sqzWord *)word: (int) rightWrong
{
if (self.mastered==nil) {
    self.mastered = [[NSMutableArray alloc]initWithCapacity:10];
}

//if right change number right
if (rightWrong == 1) {
    word.numberCorrect++;
     //if 3 right move to masterd list

    [self.onDeck removeObject:word];
    if(word.numberCorrect >= 3 )
    {
        [self.mastered addObject:word];


    }
    else
    {
         //if not 3 right move to end of ondeck
        [self.onDeck addObject:word];

    }


}
else if(rightWrong == 0)
{
    //if wrong remove one from number right unless 0
    NSUInteger i;

    i=[self.onDeck indexOfObject:word];

    word = [self.onDeck objectAtIndex:i];

    if (word.numberCorrect >0) {
         word.numberCorrect--;
    }
}
}

我得到的警告是:'word'用作上一个参数的名称而不是选择器的一部分。

2 个答案:

答案 0 :(得分:1)

因为你没有给方法的第一个参数命名。就目前而言,您有以下内容:

-(void) SetRightWrong:(sqzWord *)word: (int) rightWrong

其中rightWrongword:参数的名称,但SetRightWrong参数没有名称。您应该为第一个参数指定一个名称,紧跟其类型(sqzWord *)。

-(void)setRightWrong:(sqzWord *)aWord   word:(int)rightWrong;
   (1)     (2)           (3)     (4)     (5)   (6)  (7)
  1. 返回类型
  2. 方法名称的第一部分
  3. 参数类型
  4. 第一个参数
  5. 方法名称的Seceond部分
  6. 参数类型
  7. 第二个参数

答案 1 :(得分:0)

你明白这个问题到底是什么吗?你说你有点困惑。所以你很困惑,你得到一个警告,它应该清楚地告诉你有问题,而不是试图解决问题,你想要帮助如何摆脱警告?这对程序员来说是一种令人深感担忧的态度。

解决问题:下载一些Objective-C示例代码。 任何示例代码。看看Objective-C方法是如何命名的。将它与Objective-C方法的命名方式进行比较。如果你看不出差异,明天再看一遍,然后再看看它对自己说:"我的代码错了。编译器是对的。我的任务是找出我的代码错误的原因。 "