2011-06-03 73 views
1

我格式化ASIHTTPRequest發送陣列數據到服務器。我有一個數組的鍵(propertyKeys)和一個數組的信息(propertyValues),並創建了一個循環來設置帖子和鍵值。- [NSURL objectAtIndex:]:無法識別的選擇器發送到實例0x4e1d6d0 ASIHTTPRequest

for(int i = 0;i<13;i++){ 
    [request setPostValue:[propertyValues objectAtIndex:i] forKey:[propertyKeys objectAtIndex:i]]; 
} 

我收到以下錯誤,但是:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL objectAtIndex:]: unrecognized selector sent to instance 0x4e1d6d0' 

我試圖來查找AHIHTTPRequest的文件,但該網站似乎是下降。

回答

2

錯誤是否發生在您發佈的代碼或其他地方?在調試模式下運行應用程序(Cmd-Y)可讓您跟蹤堆棧跟蹤,確切瞭解發生崩潰的位置。這就是說,如果崩潰發生在您發佈的內容中,那麼可能意味着propertyKeyspropertyValues已被釋放,並且其指針現在是垃圾。確保他們沒有得到釋放或自動釋放到你的程序的那部分時間。

+0

所以,而不是通過像NSArray propertyValues = [NSArray withObjects ...]來定義它們,我應該初始化它,還是我只需要在賦值變量後立即調用retain? – Chris 2011-06-03 23:20:58

+0

廢話不要說,你是對的。最初我將它們組合成一個NSDictionary,然後釋放數組。接得好! – Chris 2011-06-03 23:21:52

0

您意外地將NSURL而不是NSArray指定爲properyValuespropertyKeys。在這一點上檢查它們在調試器中的含義。

在很多情況下,編譯器在執行此操作時會發出警告。確保你的代碼沒有警告。在Objective-C中,警告幾乎總是錯誤,不應該被忽略。

相關問題