2012-03-18 75 views
0

AppDelegate中有一個被叫用戶參數,串錯誤:EXC_BAD_ACCESS

和用戶有兩個參數稱爲用戶id & DepartmentID的。

我只是想訪問我的WebService使用ASIHttpRequest API,

但在此之前我發送請求,

存在誤差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*** 

用戶ID的價值是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 

也有同樣的錯誤......

,我不知道爲什麼,所以請幫助我,謝謝。

回答

0

最後兩個參數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] 
+0

...我犯了這樣一個愚蠢的錯誤!謝謝,現在好了! – jxdwinter 2012-03-18 16:03:08

1

最後兩個格式說明符必須是%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

這樣一個愚蠢的錯誤!謝謝你,有一個美好的一天! – jxdwinter 2012-03-18 16:06:28