Issue passing NSMutableDictionary to a method

Posted by roswell on Stack Overflow See other posts from Stack Overflow or by roswell
Published on 2010-04-04T02:21:39Z Indexed on 2010/04/04 7:53 UTC
Read the original article Hit count: 557

Hello all,

I've got a chunk of code that's passing an NSMutableDictionary (amongst other things) to a method in another class:

[self.shuttle makeAPICallAndReturnResultsUsingMode:@"login" module:@"login" query:credentials];

The NSMutableArray credentials is previously defined like this:

NSMutableDictionary *credentials = [[NSMutableDictionary alloc] init];
[credentials setObject:username forKey:@"username"];
[credentials setObject:password forKey:@"password"];

The method that receives it looks like this:

-(id)makeAPICallAndReturnResultsUsingMode:(NSString *)mode module:(NSString *)module query:(NSMutableDictionary *)query

The code works fine up until this point within the above method:

 [query setObject:self.sessionID forKey:@"session_id"];

At this point, the application terminates -- the console informs me of this exception:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSCFDictionary setObject:forKey:]: method sent to an uninitialized mutable dictionary object'

This leads me to believe that I must initialize NSMutableDictionary in some way in my new method before I can access it, but I have no idea how. Any advice?

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about nsmutabledictionary