2010-04-04 3 views
0

У меня есть кусок кода, который пропускание 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 

код работы s не оштрафовать до этого момента в течение указанного выше способа:

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

На данный момент, приложение завершается - консоль сообщает мне это исключение:

* Нагрузочное приложение из-за неперехваченное исключением 'NSInvalidArgumentException', причина: '* - [NSCFDictionary SetObject: forKey]: метод направлен в неинициализированного изменчивого словаря объекта'

Это заставляет меня поверить, что я должен каким-то образом инициализировать NSMutableDictionary в своем новом методе, прежде чем я получу доступ к нему, но я понятия не имею, как это сделать. Любой совет?

ответ

0

Вам не нужно повторно инициализировать объект каким-либо образом в новом методе. Вы говорите, что массив учетных данных «предварительно определен», но где он определен? В том же методе, который вызывает makeAPICallAndReturnResultsUsingMode ...? Делали ли вы что-нибудь с query в makeAPI ... перед строкой, которая генерирует исключение?

+0

Это предварительно определено непосредственно перед вызовом self.shuttle, который передает его makeAPICallAndReturnResultsUsingMode - для OP я добавляю два значения в NSMutableDictionary, но это все. И Неа, ничего не делается для этого, метод буквально выглядит следующим образом: - (ID) makeAPICallAndReturnResultsUsingMode: (NSString *) модуль режима: (NSString *) модуль запроса: (NSMutableDictionary *) запрос { \t [запрос setObject: self.sessionID forKey: @ "session_id"]; – roswell

Смежные вопросы