使用数组设置的Objective-c NSMutableDictionary保持为空

时间:2015-07-15 04:12:11

标签: ios objective-c arrays dictionary nsmutabledictionary

我是新来的,但是当我需要的时候我会用这个网站来阅读这个网站,但今天我找不到我的问题的答案。

我会尝试用足够的细节来解释我的问题。

我需要在特定键的NSMutableDictionary中添加一个数组。添加到其中的键是正确的,但我的字典值保持为空。这是我的代码:

dictionarySection = [[NSMutableDictionary alloc] initWithObjects:arraySectionValues forKeys:arraySectionKeys];
dictionaryClip = [[NSMutableDictionary alloc] initWithCapacity:[arraySectionKeys count]];

NSArray *tabSection = [dictionarySection allKeys];
id key,value;
for (int j=0; j<tabSection.count; j++)
{
    array = [NSMutableArray array];
    key = [tabSection objectAtIndex: j];
    value = [dictionarySection objectForKey: key];
    //NSLog (@"Key: %@ for value: %@", key, value);
    for (SMXMLElement *clip in [books childrenNamed:@"clip"]) {
        if([[clip valueWithPath:@"categorie"] isEqualToString:value]){
            [array addObject:[clip valueWithPath:@"titre"]];
        }
    }
    NSLog(@"Test array %@",array);
    [dictionaryClip setObject:array forKey:key];
    [array removeAllObjects];
    NSLog(@"Test dictionary %@",dictionaryClip);
}

这里是NSLog的结果:

2015-07-15 14:34:48.272 test[15533:390301] Test array (
"CDS : ITV Philippe Dunoyer",
"FLASH INFO NCI : crise des banques",
"Les Roussettes sont-elles dangereuses ?",
"Flash infos banques gr\U00e8ve",
"CDS : ITV Paul Langevin",
"CDS : ITV Valls",
"CDS : ITV Victor Tutugoro",
"CDS : ITV Roch Wamytan",
"NCGLAN 20",
"Flash Info : dispositif anti-d\U00e9linquance"
)
2015-07-15 14:34:48.273 test[15533:390301] key : 0
2015-07-15 14:34:48.273 test[15533:390301] Test dictionary {
    0 =     (
    );
}

正如我们所看到的,数组已填充,字典的键是正确的,但数组不在我的字典中。

我怎么能想用这个数组填充我的字典?

非常感谢你的回答:)

Ps:原谅我的英语:(

1 个答案:

答案 0 :(得分:0)

您正在为要在字典中传递的数组的相同实例调用 removeAllObjects:方法,因此正在存储的数组中删除它们的对象。尝试传递该数组的副本或具有相同对象的数组的新实例。

示例:

<body>
 <div id="stage"></div>
</body>