я следующий метод экземпляра, который должен быть возвращающую NSUInteger:Другой 'NSUInteger *' (он же 'неподписанных INT *') против 'NSUInteger' (он же 'неподписанных Int')
- (NSUInteger)getCurAnsPos {
NSUInteger CAP = 999;
NSArray *curCAS = [[GameData gameData].curData valueForKey:@"clueAnsState"];
for (NSInteger idx = 0; idx < 8; idx++) {
NSString *temp = [curCAS objectAtIndex:idx];
if ([temp isEqualToString:@"2"]) {
CAP = [curCAS indexOfObject:temp];
NSLog(@"CAP = ");
NSLog(@"%i", CAP);
} // only one curCAS should be = 2
}
return CAP;
}
Я получаю ошибка в заголовке вопроса. Значение вычисляемого CAP является правильным, но тип возврата, по-видимому, неверен. Я не понимаю, почему. Я знаю, что это связано с указателями против примитивов, но, прочитав архивы SO, я подумал, что это должно сработать. Может быть, CAP = [curCAS indexOfObject:temp];
возвращает CAP в качестве указателя (действительно, это должно быть), но я до сих пор не вижу, как его изменить. Что мне нужно, это то, что я могу использовать в заявлении objectAtIndex:CAP
. Благодарю.
Какая именно ошибка вы получаете? В заголовке этого не говорится. – bneely
Это компиляция без ошибок или предупреждений для меня на iOS 5.1 с ARC. – lnafziger
Ах, извините, это предупреждение после компиляции, а не ошибка: 'Конфликтный тип возвращаемого значения в реализации 'getCurAnsPos': 'NSUInteger *' (aka 'unsigned int *') vs 'NSUInteger' (aka' unsigned int ')' Я использую Xcode 4.3 и iOS 5.0. –