开发者

Values not appending to my NSMutableDictionary

I'm trying to add some vales to a NSMutableDictionary dynamically. However, using the following code, I'm adding values using the first letter as the key to a temporary dictionary and then finally adding it to my names dictionary but it just overwrites each value for it's corresponding key

NSMutableDictionary *dictionary = [[[NSMutableDictionary alloc] init] autorelease];
for (NSString *drugStr in listContents) {
    NSString *substring = [drugStr substringToIndex:1];
    [dictionary setValue:drugStr forKey:substring];     
}
names = [[NSDic开发者_如何学运维tionary alloc] initWithDictionary:dictionary];
[dictionary release];

What am I doing wrong?


You should define your NSDictionary to use NSString as a key, and NSArray as a value.

Then you should just retrieve your value according to the given key. If the result is nil, then you need to create a new NSMutableArray, to which you add the value above. IF the result is not-nil, add the value to the array.

NSMutableDictionary *dictionary = [[[NSMutableDictionary alloc] init] autorelease];
for (NSString *drugStr in listContents) {
    NSString *substring = [drugStr substringToIndex:1];
    NSMutableArray *valueArray = (NSMutableArray*)[dictionary objectForKey:substring];
     if(valueArray==nil){
         NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:5];
         [newArray addObject:drugStr];
         [dictionary setObject:newArray forKey:substring];
     }else{
         [valueArray addObject:drugStr];
     }

}
names = [[NSDictionary alloc] initWithDictionary:dictionary];
[dictionary release];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜