问题将NSMutableDictionary传递给方法

时间:2010-04-04 02:21:40

标签: objective-c nsmutabledictionary

我有一大堆代码将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

在上述方法中,代码工作正常:

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

此时,应用程序终止 - 控制台通知我此异常:

  

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

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

1 个答案:

答案 0 :(得分:0)

您无需在新方法中以任何方式重新初始化对象。您说凭证数组“先前已定义”,但它在何处定义?在调用makeAPICallAndReturnResultsUsingMode ...的方法中?在抛出异常的行之前,您是否在makeAPI ...方法中对query执行了任何操作?