0

好的,所以我像这样填充数组:

NSMutableArray *participants;
for(int i = 0; i < sizeofpm; i++){
        NSDictionary *pmpart_dict = [pm_participants objectAtIndex:i];
        NSString *pmpart_email = [pmpart_dict objectForKey:@"email"];
        NSString *pmpart_email_extra = [@"pm" stringByAppendingString:pmpart_email];
        [participants setValue:pmpart_email forKey:pmpart_email_extra];
        NSLog(@"%@", participants);
    } 

sizeofpm 为 1。即使用计数。获取数组中值的数量。如何将值存储到该数组?它似乎没有工作。谢谢!

4

4 回答 4

2

您不创建数组,只需声明它。

NSMutableArray *participants = [NSMutableArray array];

之后,setValue:forKey:不会将对象添加到数组中。你需要addObject:

[participants addObject:pmpart_email];

没有钥匙。

于 2012-07-24T13:51:44.963 回答
2

你需要先分配它。尝试将第一行更改为:

NSMutableArray* participants = [[NSMutableArray alloc] init];

也使用setValue:forKey:不会与数组一起使用,NSMutableArray因为数组没有键。

尝试使用[participants addObject:pmpart_email];.

于 2012-07-24T13:51:48.620 回答
1

您正在将值分配给NSMutableArray *participants您将值分配给NSDictionary对象的方式。要为NSMutableArray您分配值,可以调用- (void)addObject:(id)anObject

于 2012-07-24T13:54:16.937 回答
0

因此,正如其他一些答案所述,我缺少participants. 但是,根据您对 的使用setValue:forKey:以及您似乎如何构建数据来判断,您不是在寻找NSMutableArray,而是在寻找NSMutableDictionary。数组只是简单的列表,而字典维护键值关系,您似乎正在尝试利用这种关系。

试试这个:

// some classes provide shorthand for `alloc/init`, such as `dictionary`
NSMutableDictionary *participants = [NSMutableDictionary dictionary];
for(int i = 0; i < sizeofpm; i++){
    NSDictionary *pmpart_dict = [pm_participants objectAtIndex:i];
    NSString *pmpart_email = [pmpart_dict objectForKey:@"email"];
    NSString *pmpart_email_extra = [@"pm" stringByAppendingString:pmpart_email];
    [participants setValue:pmpart_email forKey:pmpart_email_extra];
    NSLog(@"%@", participants);
} 

这会给你一本字典,形式为

{
    pmpart_email_extra: pmpart_email
}
于 2012-07-24T13:58:26.270 回答