空NSMutableArray里,不知道为什么(Empty NSMutableArray , not

2019-06-26 12:30发布

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

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,即使用计数。 获得数组中值的数量。 我怎么能值存储到数组? 它似乎没有奏效。 谢谢!

Answer 1:

你需要先ALLOC它。 尝试改变第一行:

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

同样使用setValue:forKey:不会工作用NSMutableArray作为数组没有密钥。

尝试使用[participants addObject:pmpart_email];



Answer 2:

你没有创建一个数组,你只需要声明它。

NSMutableArray *participants = [NSMutableArray array];

在此之后, setValue:forKey:不会的对象添加到一个数组。 您需要addObject:

[participants addObject:pmpart_email];

没有钥匙。



Answer 3:

您分配一个值到NSMutableArray *participants怎么样,你赋值一个NSDictionary对象。 赋值给NSMutableArray ,你可以调用- (void)addObject:(id)anObject



Answer 4:

所以,我因为一些其他的答案中所指出的,你错过了你的初始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
}


文章来源: Empty NSMutableArray , not sure why