2011-06-28 76 views
0

我試圖使用ASIFormDataRequest用下面的代碼:ASIFormDataRequest NSInvalidArgumentException

NSURL *url = [NSURL URLWithString: urlString]; 
ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request addPostValue:@"json" forKey:@"json"]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

代碼保持在[request addPostValue:@"json" forKey:@"json"];行崩潰。我也試過setPostValue:forKey:,結果相同。如果我註釋掉addPostValue:forKey:行,請求就會通過(我可以在服務器上看到它),但當然沒有json數據。

我通過傳遞字符串json來簡化問題。一旦我找出這個問題,那實際上就是我的json格式化字符串。

這裏的堆棧跟蹤:

2011-06-28 08:49:29.344 Gleek[26170:207] *** Terminating app due to uncaught  exception  'NSInvalidArgumentException', reason: '-[ASIHTTPRequest addPostValue:forKey:]: unrecognized  selector sent to instance 0x5024400' 
*** Call stack at first throw: 
(
0 CoreFoundation      0x010f85a9 __exceptionPreprocess + 185 
1 libobjc.A.dylib      0x0124c313 objc_exception_throw + 44 
2 CoreFoundation      0x010fa0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 
3 CoreFoundation      0x01069966 ___forwarding___ + 966 
4 CoreFoundation      0x01069522 _CF_forwarding_prep_0 + 50 
5 Gleek        0x00006bab -[ProcedureDefDetailViewController toggleCompletedStatus:] + 1451 
6 UIKit        0x005e44fd -[UIApplication sendAction:to:from:forEvent:] + 119 
7 UIKit        0x00674799 -[UIControl sendAction:to:forEvent:] + 67 
8 UIKit        0x00676c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527 
9 UIKit        0x006757d8 -[UIControl touchesEnded:withEvent:] + 458 
10 UIKit        0x00608ded -[UIWindow _sendTouchesForEvent:] + 567 
11 UIKit        0x005e9c37 -[UIApplication sendEvent:] + 447 
12 UIKit        0x005eef2e _UIApplicationHandleEvent + 7576 
13 GraphicsServices     0x018b6992 PurpleEventCallback + 1550 
14 CoreFoundation      0x010d9944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52 
15 CoreFoundation      0x01039cf7 __CFRunLoopDoSource1 + 215 
16 CoreFoundation      0x01036f83 __CFRunLoopRun + 979 
17 CoreFoundation      0x01036840 CFRunLoopRunSpecific + 208 
18 CoreFoundation      0x01036761 CFRunLoopRunInMode + 97 
19 GraphicsServices     0x018b51c4 GSEventRunModal + 217 
20 GraphicsServices     0x018b5289 GSEventRun + 115 
21 UIKit        0x005f2c93 UIApplicationMain + 1160 
22 Gleek        0x00002a09 main + 121 
23 Gleek        0x00002985 start + 53 
24 ???         0x00000001 0x0 + 1 
) 

感謝

回答

2

答案很簡單,你必須使用:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

並且正在使用,

ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:url]; 

只需改變它即可將工作。

始終確保您使用正確的類別構造函數初始化對象。

+0

謝謝!再次複製並粘貼罷工。 –