在成功运行后,使用SimplePost请求发送无法识别的选择器时崩溃。

时间:2012-12-05 15:08:33

标签: ios xcode automatic-ref-counting analyzer

我已经使用SimplePost类几周了,并没有遇到任何问题。现在,我在请求返回Connection中的正确数据后崩溃。我没有(明知)触及过SimplePost类文件。但是当我运行分析仪时,它现在(从未做过)指出了以下方法:

+ (NSMutableURLRequest *) urlencodedRequestWithURL:(NSURL *)url andDataDictionary:(NSDictionary *) dictionary {
   //  Create POST request
   NSMutableURLRequest *urlencodedPostRequest = [NSMutableURLRequest requestWithURL:url];
   [urlencodedPostRequest setHTTPMethod:@"POST"];
   //  Add HTTP header info
   [urlencodedPostRequest addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField: @"Content-Type"];
   //  Add POST body
   NSMutableData *POSTBody = [NSMutableData data];
   //  Add k/v to the body
   NSArray *keyArray = [dictionary allKeys];
   for( int i = 0; i < [keyArray count]; ++i ) {
       // Core Foundation function used to transform @ ==> %40 , etc
       NSString *escapedString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)([dictionary objectForKey:[keyArray objectAtIndex:i]]),NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);
       [POSTBody appendData:[[NSString stringWithFormat:@"%@=%@", [keyArray objectAtIndex:i], escapedString] dataUsingEncoding:NSUTF8StringEncoding]];
       if( i < ([keyArray count] - 1) ) {
            [POSTBody appendData:[[NSString stringWithFormat:@"&"] dataUsingEncoding:NSUTF8StringEncoding]];
       }
   }
   [urlencodedPostRequest setHTTPBody:POSTBody];
   return urlencodedPostRequest;
}

运行分析器会向我显示:

bug prt1
这些行继续如下:  bug prt2

我很难理解发生了什么。有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试了__bridge_transfer的{​​{1}}?

escapedString

比照Correct bridging for ARC?