неразпознато изключение на селектора при обработка на сапунен резултат от sudzc.com

Създадох приложение около генерирания от sudzc.com код за достъп до моята уеб услуга за сапун. Заявката за сапун и обработката се поставят в моя подклас UITableViewController.

Това е съответният код:

 1 - (void)viewDidLoad {
 2 [...]
 3 NSLog(@"Starting Soap Request");
 4 CCExample_ManagerService* soapService = [[CCExample_ManagerService alloc] init];
 5 [soapService getActiveVehicles:self action:@selector(getActiveVehiclesHandler:)];
 6 }
 7
 8 - (void) getActiveVehiclesHandler: (id) value {
 9 [...]
10 }

Получавам следното изключение на ред 5:

* Прекратяване на приложението поради неуловено изключение „NSInvalidArgumentException“, причина: „-[__NSArrayI addObject:]: неразпознат селектор, изпратен до екземпляр 0x112730“

След много търсене съм наистина отчаян, тъй като методът за избор е в същия клас и по този начин се вижда. Същият код също работи перфектно в друг проект, така че не съм сигурен какво му пречи да работи в този конкретен случай.


person Nachtkrapp    schedule 30.04.2012    source източник
comment
можеш ли да покажеш целия .m файл..?   -  person Ankit Srivastava    schedule 30.04.2012
comment
Не показвате достатъчно код, но все пак имах предположение да отговоря.   -  person JeremyP    schedule 30.04.2012


Отговори (1)


Някъде създавате NSArray и по-късно се опитвате да добавите обект към него. NSArray е неизменен и не отговаря на -addObject:. Така че потърсете къде създавате или получавате NSArray - вероятно някъде в getActiveVehiclesHandler: - и вместо това го направете NSMutableArray.

person JeremyP    schedule 30.04.2012
comment
за съжаление, грешката възниква и ако коментирам всичко в getActiveVehiclesHandler. Никъде не добавям нищо към NSArray - person Nachtkrapp; 30.04.2012
comment
@user1365464: Все пак трябва да потърсите някъде, където NSArray се използва по променлив начин. - person JeremyP; 30.04.2012
comment
решено! ти беше права. имаше прехвърляне към NSArray в автоматично генерирания sudzc код: SoapRequest* _request = [SoapRequest create: _target action: _action service: self soapAction: @myURL/soap#getActiveVehicles postData: _envelope deserializeTo: [[NSArray alloc] autorelease]]; Промених го на NSMutableArray и сега работи! - person Nachtkrapp; 30.04.2012