我目前正在尝试为iPhone制作一个简单的craps应用程序。
在模型中我有一个方法:
-(NSString *)resultsOfRoll:(int)firstRoll :(int)secondRoll
{
NSString *results = @"";
NSArray *naturalNumbers = @[@7,@11];
NSArray *losingNumbers = @[@2, @3, @12];
NSArray *pointNumbers = @[@4,@5,@6,@8,@9,@10,@11];
int sum = firstRoll + secondRoll;
if(sum in naturalNumbers)
{
return @"You rolled a natural! You won";
}
return results
}
但是我收到了一个错误。我是Obj C的新手,我没有使用太多的枚举(如果那是错的,请纠正我)。如果我正确地初始化循环以及如何检查总和(roll + roll)是否在数组中,有人可以告诉我吗? 另外,我的方法名称看起来是否正确?我来自Java,这些方法sig对我来说仍然有点混乱。
答案 0 :(得分:2)
if(sum in naturalNumbers)
显然不是有效的语法。你正在使用类似'for in'和int而不是object的东西。
你想要的是:
if ([naturalNumbers containsObject:@(sum)]) {
如果数组包含一个包含NSNumber
的{{1}}实例,则会询问该数组。
您的方法没有命名第二个参数,这是合法的但不鼓励。它会更好:
sum