Строка с ошибкой: EXC_BAD_ACCESS - PullRequest
0 голосов
/ 18 марта 2012

В AppDelegate есть параметр с именем user,

и у пользователя есть два параметра с именем userId & DepartmentId.

Я просто хочу получить доступ к своему WebService с помощью API ASIHttpRequest,

но прежде чем я отправлю запрос,

есть ошибка EXC_BAD_ACCESS в этом коде:

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
    NSString *userId = appDelegate.user.userId;
    NSString *departmentId = appDelegate.user.departmentId;
    NSLog(@"xxxxx:%@",userId);//this can log 29
    NSLog(@"xxxxx:%@",departmentId);//this can log 17
    NSString *URL = [NSString stringWithFormat:@"https://xxx.xxx.xx.xx/FMS/Pages/Service/FMService.svc/GetAnnouncement?userId=%@&departmentId=%@&pageIndex=%@&pageSize=%@",userId,departmentId,1,10]; ***//ERROR***

Значение userId равно 29, а значение DepartmentId равно 17,

затем я изменяю код на:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://xxx.xxx.xx.xx/FMS/Pages/Service/FMService.svc/GetAnnouncement?userId=%@&departmentId=%@&pageIndex=%@&pageSize=%@",userId,departmentId,1,10]];//also the same error

Существует также та же ошибка ...

и я не знаю почему, поэтому, пожалуйста, помогите мне с этим, спасибо.

Ответы [ 2 ]

1 голос
/ 18 марта 2012

Последние два спецификатора формата должны быть% d, чтобы напечатать / отформатировать порядковое десятичное число. % @ ожидает объект и пытается вызвать его метод -description, который не работает для обычных чисел (например, 1 и 17) в качестве указателей на объекты. Я удивлен, почему регистрация работала.

Таким образом, правильная строка формата должна быть:

[NSString stringWithFormat:@"https://xxx.xxx.xx.xx/FMS/Pages/Service/FMService.svc/GetAnnouncement?userId=%@&departmentId=%@&pageIndex=%d&pageSize=%d",userId,departmentId,1,10];
0 голосов
/ 18 марта 2012

Последние два аргумента stringWithFormat: не являются объектами, поэтому не следует использовать спецификатор формата %@ вместо использования %d

 [NSString stringWithFormat:@"https://xxx.xxx.xx.xx/FMS/Pages/Service/FMService.svc/GetAnnouncement?userId=%@&departmentId=%@&pageIndex=%d&pageSize=%d",userId,departmentId,1,10]
...