0

我有一大段代码将 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 才能访问它,但我不知道如何访问它。有什么建议吗?

4

1 回答 1

0

您不必在新方法中以任何方式重新初始化对象。你说凭证数组“是以前定义的”,但它是在哪里定义的?在调用makeAPICallAndReturnResultsUsingMode... 的相同方法中?query在引发异常的行之前,您是否在 makeAPI... 方法中做了任何事情?

于 2010-04-04T07:56:05.660 回答