gpt4 book ai didi

ios - 循环中的 NSRangeException

转载 作者:行者123 更新时间:2023-11-28 22:26:44 26 4
gpt4 key购买 nike

我仍在边做边学,所以如果这听起来像是一个菜鸟问题,那可能就是这样。

我正在尝试遍历 NSDictionary(消息)并获取某个键的值。

当我运行这段代码时,出现以下错误“* 由于未捕获的异常‘NSRangeException’而终止应用程序,原因:‘* -[__NSArrayI objectAtIndex:]: index 4 beyond bounds [0 . . 3]'"

NSArray* keys = [messages allKeys];

int count = [keys count] ;
for (int i=0; i < count; i++) {
for(NSString* key in keys) {
if ([key isEqualToString:@"messagesinconversation"]) {
NSArray* arr = [messages objectForKey:key];
NSString *sentby = [[arr valueForKey:@"sentby"] objectAtIndex:i];

NSLog (@"%@", sentby);

}
}
}

有人能给我指出正确的方向吗?

最佳答案

我认为问题发生在

NSString *sentby = [[arr valueForKey:@"sentby"] objectAtIndex:i];
可能是 arr 数组计数小于键数组计数。但是您正在根据键数运行 for 循环。替换
NSString *sentby = [[arr valueForKey:@"sentby"] objectAtIndex:i];
NSLog (@"%@", sentby);
代码如下

for(NSDictionary *dictionary in arr){
   NSString *sentby=[dictionary objectForKey:@"sentby"];
   NSLog(@"sentby is %@",sentby);
}

关于ios - 循环中的 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762008/

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