所以这个问题: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'用作上一个参数的名称而不是选择器的一部分。
答案 0 :(得分:1)
因为你没有给方法的第一个参数命名。就目前而言,您有以下内容:
-(void) SetRightWrong:(sqzWord *)word: (int) rightWrong
其中rightWrong
是word:
参数的名称,但SetRightWrong
参数没有名称。您应该为第一个参数指定一个名称,紧跟其类型(sqzWord *
)。
-(void)setRightWrong:(sqzWord *)aWord word:(int)rightWrong;
(1) (2) (3) (4) (5) (6) (7)
答案 1 :(得分:0)
你明白这个问题到底是什么吗?你说你有点困惑。所以你很困惑,你得到一个警告,它应该清楚地告诉你有问题,而不是试图解决问题,你想要帮助如何摆脱警告?这对程序员来说是一种令人深感担忧的态度。
解决问题:下载一些Objective-C示例代码。 任何示例代码。看看Objective-C方法是如何命名的。将它与Objective-C方法的命名方式进行比较。如果你看不出差异,明天再看一遍,然后再看看它对自己说:"我的代码错了。编译器是对的。我的任务是找出我的代码错误的原因。 "