Iphone ASIFormDataRequest错误
NSDataIphone ASIFormDataRequest错误,iphone,cocoa,ios,asihttprequest,Iphone,Cocoa,Ios,Asihttprequest,NSData-DictionaryFomapplerResponse返回一个NSDictionary。我不明白为什么会出现以下错误: - (void) recordTransaction: (SKPaymentTransaction *) transaction { NSDictionary * receipt = [transaction.transactionReceipt dictionaryFromAppleResponse]; NSDictionary * purcha
-DictionaryFomapplerResponse
返回一个NSDictionary
。我不明白为什么会出现以下错误:
- (void) recordTransaction: (SKPaymentTransaction *) transaction {
NSDictionary * receipt = [transaction.transactionReceipt dictionaryFromAppleResponse];
NSDictionary * purchaseInfo = [[NSData dataFromBase64String: [receipt objectForKey: @"purchase-info"]] dictionaryFromAppleResponse];
NSURL * url = [NSURL URLWithString: @"http://..."];
ASIFormDataRequest * request = [ASIFormDataRequest requestWithURL: url];
[request setDelegate: self];
[request setPostValue: [NSNumber numberWithBool: YES] forKey: @"upload"];
[request setPostValue: [[[NSBundle mainBundle] infoDictionary] objectForKey: @"CFBundleDisplayName"] forKey: @"app_id"];
[request setPostValue: [receipt descriptionInStringsFileFormat] forKey: @"receipt"];
[request setPostValue: [purchaseInfo descriptionInStringsFileFormat] forKey: @"purchase_info"];
[WTFeedbackView switchToProgressView];
[request setUploadProgressDelegate: [WTFeedbackView class]];
NSLog(@"Before -startAsynchronous call.");
[request startAsynchronous];
NSLog(@"After -startAsynchronous call.");
}
如果您在objc_exception_throw上添加断点,这将有助于您获得更多关于错误具体位置的信息(如果这样做,请将回溯添加到问题中) 假设错误来自ASIHTTPRequest本身,它使用NSInvocation与它的委托进行对话。我怀疑你代码中的这一行:
Error Domain=ASIHTTPRequestErrorDomain Code=10 "NSInvalidArgumentException" UserInfo=0x19eb00 {NSLocalizedFailureReason=+[NSInvocation invocationWithMethodSignature:]: method signature argument cannot be nil, NSUnderlyingError=0x19eae0 "The operation couldn’t be completed. (ASIHTTPRequestErrorDomain error 10.)", NSLocalizedDescription=NSInvalidArgumentException}
我不确定是否可以将progress委托设置为类,我一直认为它必须是一个实际对象-也许尝试删除它,我怀疑它会使错误消失。可能就是这样。我会调查一下课堂上的事情,然后再打给你。
[request setUploadProgressDelegate: [WTFeedbackView class]];