Есть что-то, чего мне не хватает в NSUInteger. Первоначально я хотел сделать это в моем файле .m. (Я видел некоторый код об использовании NSEnumerator, но я не совсем понял его, поэтому подумал, что для моих нужд этого будет достаточно).
Итак, я хотел сделать это:
- (NSArray *)reverseArray:(NSMutableArray *)array {
NSMutableArray *anArray = [[NSMutableArray alloc] initWithCapacity:[array count]];
for (NSUInteger i = [array count] - 1; i >= 0 ; i--) {
[anArray addObject:[array objectAtIndex:i]];
}
return anArray;
}
Это дает мне предупреждение компилятора, что i> = 0 - это то, для чего предназначен NSUInteger или что-то в этом роде. Когда я запускаю программу, она также дает сбой и получает доступ к какому-то супер огромному числу. Я не совсем уверен, почему. Я могу сместить меня на 1 везде и сделать это, и это работает:
- (NSArray *)reverseArray:(NSMutableArray *)array {
NSMutableArray *anArray = [[NSMutableArray alloc] initWithCapacity:[array count]];
for (NSUInteger i = [array count]; (i) ; i--) {
[anArray addObject:[array objectAtIndex:i - 1]];
}
return anArray;
}
Я просто не понял, почему первый метод не работает. Любая помощь будет оценена. Спасибо!