Ok so I populate the array like this:
NSMutableArray *participants;
for(int i = 0; i < sizeofpm; i++){
NSDictionary *pmpart_dict = [pm_participant
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.
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];
.
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
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
}