Lou*_*uie 5 iphone xcode ios4 ios
在iOS5之前我可以测试看看我从我的代码获得响应的URL是这样的:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
returnString = [[[NSMutableString alloc] initWithData:responseData encoding: NSUTF8StringEncoding] autorelease];
NSString * currentParseString = [NSString stringWithFormat:@"%@",connection];
NSLog(@"Currently Parsing: %@",currentParseString);
}
Run Code Online (Sandbox Code Playgroud)
我的日志会打印出来" Currently Parsing: http://www.myinfo.com/parser...."
然后,我可以使用它来测试和发送到不同的IF语句.我现在的问题是,在iOS5中connection不再打印为URL,它打印为内存块<NSURLConnection: 0x6a6b6c0>我怎么能让它再次作为URL打印出来,所以我不必重写我的IF语句?
我做了这样的事情:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"%@",[connection currentRequest]);
}
Run Code Online (Sandbox Code Playgroud)
当你把%@一个内NSString格式,它会被替换[object description].Apple必须改变[connection description]回报.在任何情况下都很难依赖它,因为它不能保证以任何特定的格式.
您可以通过多种方式更改实施方式.可能最快的是创建一个非常简单的子类NSURLConnection:
// MyNSURLConnection.h
// code written assuming ARC
@interface MyNSURLConnection : NSURLConnection
@property (nonatomic, strong) NSURL *requestURL;
@end
Run Code Online (Sandbox Code Playgroud)
// MyNSURLConnection.m
// example override, you can override all the init/connection methods
- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately {
self = [super initWithRequest:request delegate:delegate startImmediately:startImmediately;
if (self) {
self.requestURL = request.URL;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
// in your MyNSURLConnectionDelegate controller
- (void)connectionDidFinishLoading:(MyNSURLConnection *)connection {
returnString = [[[NSMutableString alloc] initWithData:responseData encoding: NSUTF8StringEncoding] autorelease];
NSString * currentParseString = [NSString stringWithFormat:@"%@",connection.requestURL];
NSLog(@"Currently Parsing: %@",currentParseString);
// rest of your code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3695 次 |
| 最近记录: |