我有一大堆代码将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才能访问它,但我不知道如何。有什么建议吗?
答案 0 :(得分:0)
您无需在新方法中以任何方式重新初始化对象。您说凭证数组“先前已定义”,但它在何处定义?在调用makeAPICallAndReturnResultsUsingMode
...的方法中?在抛出异常的行之前,您是否在makeAPI ...方法中对query
执行了任何操作?