Objective c 将NSMutableDictionary传递给方法时出现问题

Objective c 将NSMutableDictionary传递给方法时出现问题,objective-c,nsmutabledictionary,Objective C,Nsmutabledictionary,我有一段代码将NSMutableDictionary和其他东西传递给另一个类中的方法: [self.shuttle makeAPICallAndReturnResultsUsingMode:@"login" module:@"login" query:credentials]; NSMutableArray凭据以前是这样定义的: NSMutableDictionary *credentials = [[NSMutableDictionary alloc] init]; [credentials

我有一段代码将NSMutableDictionary和其他东西传递给另一个类中的方法:

[self.shuttle makeAPICallAndReturnResultsUsingMode:@"login" module:@"login" query:credentials];
NSMutableArray凭据以前是这样定义的:

NSMutableDictionary *credentials = [[NSMutableDictionary alloc] init];
[credentials setObject:username forKey:@"username"];
[credentials setObject:password forKey:@"password"];
-(id)makeAPICallAndReturnResultsUsingMode:(NSString *)mode module:(NSString *)module query:(NSMutableDictionary *)query
接收它的方法如下所示:

NSMutableDictionary *credentials = [[NSMutableDictionary alloc] init];
[credentials setObject:username forKey:@"username"];
[credentials setObject:password forKey:@"password"];
-(id)makeAPICallAndReturnResultsUsingMode:(NSString *)mode module:(NSString *)module query:(NSMutableDictionary *)query
在上述方法中,代码在这一点之前运行良好:

 [query setObject:self.sessionID forKey:@"session_id"];
此时,应用程序终止-控制台通知我此异常:

*由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因: '*-[NSCFDICTIONAL setObject:forKey:::方法发送到 未初始化可变字典 对象的


这让我相信,在访问NSMutableDictionary之前,我必须以某种方式在新方法中初始化NSMutableDictionary,但我不知道如何初始化。有什么建议吗?

您不必在新方法中以任何方式重新初始化对象。您说凭证数组是以前定义的,但它是在哪里定义的?在调用MakeApiCallandReturnResultsSingMode的相同方法中?你对makeAPI中的查询做了什么。。。方法在引发异常的行之前?

它是在self.shuttle调用之前定义的,self.shuttle调用将异常传递给MakeApiCallandReturnResultsSingMode-根据操作,我会向NSMutableDictionary添加两个值,但仅此而已。不,没有对它做任何操作,该方法字面上看起来是这样的:-IDMakeApiCallandReturnResultsSingMode:NSString*mode:NSString*module查询:NSMutableDictionary*查询{[query setObject:self.sessionID forKey:@session_id];