在NSMutableArray中访问NSMutableDictionary

时间:2012-11-08 02:22:49

标签: ios nsmutablearray plist nsmutabledictionary

我有NSMutableArray NSMutableDictionary(这是一个plist)。数组中的每个字典都有2个键:“id”和“lu”。

如何在NSMutableArray的{​​{1}}中找到索引,例如NSMutableDictionary ='47653'?

我试图这样做,但它不起作用:

id

3 个答案:

答案 0 :(得分:0)

NSMutableArray *mut_array = [[NSArray arrayWithContentsOfFile:path] mutableCopy];将创建一个可变数组的可变数组,而不是可变字典。 mutableCopy不是深层次的副本。

无论可变性如何,以下内容都能满足您的需求:

NSUInteger indexOfDictionary = [[array valueForKey:@"id"] indexOfObject:@"49711"];

if(indexOfDictionary == NSNotFound)
{
    NSLog(@"no matching objects found!");
    return;
}

NSDictionary *fullDictionary = [array objectAtIndex:indexOfObject];

valueForKey:使用以下事实:数组上的键值编码调用以相同的顺序返回数组中每个对象上该调用结果的数组,以及{{1在这种情况下,{}}和NSDictionary

会有类似的回应

至于你真正处理的是字符串还是数字的问题,请尝试仅使用valueForKey:代替objectForKey:,如果可行,那么你就有了数字。

答案 1 :(得分:0)

在您的日志ID中是49711&在你的if条件中它是47653.你的条件不会满足,直到你的数组中有字典id = 47653

答案 2 :(得分:-1)

加载的plist中的对象不可变。

尝试:

for(NSDictionary * dict in mut_array)
{
    if([[dict objectForKey:@"id"] isEqualToString:@"49711"]) {
        NSLog(@"Test");
    }
}