Empty NSMutableArray , not sure why

前端 未结 4 1642
醉酒成梦
醉酒成梦 2020-12-20 09:42

Ok so I populate the array like this:

NSMutableArray *participants;
for(int i = 0; i < sizeofpm; i++){
        NSDictionary *pmpart_dict = [pm_participant         


        
相关标签:
4条回答
  • 2020-12-20 10:10

    You don't create the array, you just declare it.

    NSMutableArray *participants = [NSMutableArray array];
    

    After that, setValue:forKey: will not add objects to an array. You need addObject::

    [participants addObject:pmpart_email];
    

    There is no key.

    0 讨论(0)
  • 2020-12-20 10:15

    you need to alloc it first. Try to change the first line to:

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

    also using setValue:forKey: wont work with an NSMutableArray as an array has no key.

    Try using [participants addObject:pmpart_email];.

    0 讨论(0)
  • 2020-12-20 10:15

    You are assigning a value to an NSMutableArray *participants like how you assign values to an NSDictionary object. To assign values to NSMutableArray you can call - (void)addObject:(id)anObject

    0 讨论(0)
  • 2020-12-20 10:15

    So, I as some of the other answer have stated, you're missing your initializer for participants. However, judging by your use of setValue:forKey:, and how you appear to be structuring your data, you're not looking for NSMutableArray, but instead NSMutableDictionary. Arrays are simply lists, whereas dictionaries maintain key-value relationships, which you appear to be attempting to leverage.

    Try this:

    // 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);
    } 
    

    This will give you a dictionary in the form of

    {
        pmpart_email_extra: pmpart_email
    }
    
    0 讨论(0)
提交回复
热议问题