【问题标题】:Empty NSMutableArray , not sure why空 NSMutableArray ,不知道为什么
【发布时间】:2012-07-24 13:49:15
【问题描述】:

好的,我这样填充数组:

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。即使用计数。获取数组中值的数量。如何将值存储到该数组?它似乎没有工作。谢谢!

【问题讨论】:

    标签: iphone xcode nsmutablearray


    【解决方案1】:

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

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

    同样使用setValue:forKey: 也无法与NSMutableArray 一起使用,因为数组没有键。

    尝试使用[participants addObject:pmpart_email];

    【讨论】:

    • 我错过了,你错过了 setValue:!在我们之间,我们已经解决了。
    【解决方案2】:

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

    NSMutableArray *participants = [NSMutableArray array];
    

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

    [participants addObject:pmpart_email];
    

    没有钥匙。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案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
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-11
          • 2013-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-06
          相关资源
          最近更新 更多