gpt4 book ai didi

objective-c - NSRangeException 超出范围未捕获的异常

转载 作者:行者123 更新时间:2023-12-03 17:42:46 28 4
gpt4 key购买 nike

我正在做教程并收到以下错误。

我的代码:

#import  <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
//NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

@autoreleasepool
{

NSMutableArray *array;
array = [[NSMutableArray alloc] init];
int i;
for( i = 0; i < 10; i++);
{
NSNumber *newNumber;
newNumber = [[NSNumber alloc] initWithInt:(i * 3)];
[array addObject:newNumber];
}


for( i = 0; i < 10; i++);
{
NSNumber *numberToPrint;
numberToPrint = [array objectAtIndex:i];
NSLog(@"The number at index %d is %@", i, numberToPrint);
}
}
//[pool drain];
return 0;
}

错误:

GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Mon Aug  8 20:32:45 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys000
[Switching to process 26323 thread 0x0]
2011-11-06 21:46:26.506 lottery[26323:707] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 10 beyond bounds [0 .. 0]'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff976d9286 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff932a3d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff976669f2 -[__NSArrayM objectAtIndex:] + 274
3 lottery 0x0000000100000e49 main + 345
4 lottery 0x0000000100000ce4 start + 52
5 ??? 0x0000000000000001 0x0 + 1
)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
(gdb)

正如你所猜到的,我正在学习 cocoa 的 Big Nerd Ranch Cocoa® Programming for Mac® OS X (3rd Edition) 。这并没有完全更新为 XCode 4.2

不确定为什么我的索引会超出范围或者这到底意味着什么。谢谢。

最佳答案

您有两个相同拼写错误的实例:

for( i = 0; i < 10; i++);

删除 for 行末尾的那些 ;。事实上,您在这两个 for 循环内不执行任何指令。你所写的相当于:

for( i = 0; i < 10; i++)
{
}

{
NSNumber *newNumber;
newNumber = [[NSNumber alloc] initWithInt:(i * 3)];
[array addObject:newNumber];
}

for( i = 0; i < 10; i++)
{
}

{
NSNumber *numberToPrint;
numberToPrint = [array objectAtIndex:i];
NSLog(@"The number at index %d is %@", i, numberToPrint);
}

关于objective-c - NSRangeException 超出范围未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8033961/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com