【发布时间】:2011-07-11 22:16:53
【问题描述】:
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 的设计目的或类似的东西。当我运行程序时,它也会崩溃并访问一些超级大的数字。我不太清楚为什么。我可以在任何地方将 i 偏移 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;
}
我只是不明白为什么第一种方法不起作用。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
这是一个很好的独立宏:stackoverflow.com/a/51342529/2057171
标签: iphone objective-c nsarray