Issue Passing NSMutableDictionary to 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 2:23 UTC
Read the original article Hit count: 386

Hello all,

I'm trying some basic iPhone programming -- all has been going well but recently I've hit a bit of a roadblock. 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 a bit above as such:

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

The method that receives it looks like such:

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

From debugging I have determined that 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