Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone nsrange异常错误_Iphone_Objective C_Xcode - Fatal编程技术网

Iphone nsrange异常错误

Iphone nsrange异常错误,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我是obj c n00b,所以如果这是一个愚蠢的问题,请原谅我,但当这个JSON调用发生时,我的应用程序正在崩溃,而以前不是这样。我95%肯定它与服务器上的php调用有关。希望您能对此有任何想法。:) 谢谢 这里是它断裂的地方 else if([ret_st hasPrefix:@"Account veri"]){ NSMutableArray *Array=[ret_st componentsSeparatedByString:@"_"]; appDelegate.user

我是obj c n00b,所以如果这是一个愚蠢的问题,请原谅我,但当这个JSON调用发生时,我的应用程序正在崩溃,而以前不是这样。我95%肯定它与服务器上的php调用有关。希望您能对此有任何想法。:)

谢谢

这里是它断裂的地方

else if([ret_st hasPrefix:@"Account veri"]){


    NSMutableArray *Array=[ret_st componentsSeparatedByString:@"_"];
    appDelegate.user_id=[Array objectAtIndex:1];
NSLog(@“用户id%@”,appDelegate.user\u id)

2012-04-07 09:43:51.094应用程序[57919:15e03]请求类型=注册和姓名=测试和电子邮件=test@test.com&密码=测试&zip=90084&id=22返回\u strr帐户已验证204 2012-04-07 09:43:51.094应用程序[57919:15e03]*由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[\uu NSArrayI objectAtIndex::]:索引1超出边界[0..0]” *第一次抛出调用堆栈: (0x1a23022 0x1e0ccd6 0x1a0f644 0xdb5d 0x10a85d 0x19f7936 0x19f73d7 0x195a790 0x1959d84 0x1959c9b 0x230d7d8 0x230d88a 0x442626 0x279d 0x2065)
terminate调用抛出异常

在索引0(边界[0..0])处有一个数组,其中有一个对象,但要求索引1处有一个对象(索引1超出边界)。检查您的代码中是否有
objectAtIndex:
调用。

如果我们有一个代码示例,说明您认为发生此异常的地方,这会有所帮助。使用
NSLog
s可以帮助您缩小范围。因此
Array
中没有对象,访问索引1会导致此异常。这是否意味着我需要更改返回字符串或其他内容?因为从JSON调用中,它得到了验证的帐户204?记录
ret_st
的内容以查看它实际返回的内容。它在这里中断:NSMutableArray*Array=[ret_st componentsSeparatedByString:@“_”];appDelegate.user_id=[Array objectAtIndex:1];我需要更改objectAtIndex吗?是的,@MaxRoper。在您将该字符串拆分为组件之前,请先记录该字符串。我相信你会发现它没有下划线。当它只分成一个字符串(本身)时,您将得到一个最大索引为0的数组。索引1超出了范围。它不仅与索引有关,还与程序逻辑有关。按照我的理解,你有一种情况,那就是
ret\u st
与你期望的不匹配。你需要问问自己,你想对此做些什么。另外,
componentsSeparatedByString:
返回NSArray,而不是NSMutableArray。非常感谢!唯一奇怪的是,该应用程序将于周二上线,而这将没有足够的时间让苹果进行更新。如果我在返回字符串中添加一个uu,这会起作用吗?我认为一个尾随的u将把一个空字符串作为第二个组件(索引1)放入数组中,这将掩盖直接的问题。(你必须尝试一下才能确定。)这会对你程序的其余部分产生什么影响,这是任何人的猜测。