首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSRangeException在环

NSRangeException在环
EN

Stack Overflow用户
提问于 2013-09-12 10:40:30
回答 4查看 118关注 0票数 0

我还在通过做来学习,所以,如果这听起来像个菜鸟的问题,很可能就是这样。

我正在尝试迭代一个NSDictionary (messeges)并获取某个键上的值。

当我运行这段代码时,我会得到以下错误:“*终止应用程序,原因是非正常异常'NSRangeException',原因:'* -__NSArrayI objectAtIndex::index 4超出界限0 . 3'”

代码语言:javascript
复制
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);

    }
}
}

谁能给我指明正确的方向吗?

EN

回答 4

Stack Overflow用户

发布于 2013-09-12 10:50:10

我想问题是你运行两个循环

看看这个,

代码语言:javascript
复制
NSArray* keys = [messages allKeys];

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

            NSLog (@"%@", sentby);

        }

}
票数 0
EN

Stack Overflow用户

发布于 2013-09-12 10:54:08

不需要在这个objectAtIndex中获得array.So的价值--请参阅我编辑的代码

代码语言:javascript
复制
NSArray* keys = [messages allKeys];
  for(NSString* key in keys)
  {
    if ([key isEqualToString:@"messagesinconversation"])
    {
        NSArray* arr = [messages objectForKey:key];
        NSString *sentby = [arr valueForKey:@"sentby"]; // here's your problem. 

        NSLog (@"%@", sentby);

    }
 }
票数 0
EN

Stack Overflow用户

发布于 2013-09-12 10:55:39

您到底想做什么还不清楚,但根本原因是ikeys数组的当前索引,而不是arr数组的索引。

也许你想:

代码语言:javascript
复制
NSArray *inconversation = [messages objectForKey:@"messagesinconversation"];
if (inconversation) {
    NSArray *sentBy = [inconversation valueForKey:@"sentby"];
    for (NSString *sender in sentBy) {
        NSLog (@"%@", sender);
    }
}

(当您想要一个特定的元素时,为什么还要迭代字典键呢?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18762008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档