返回自定义的NSURLResponse类
我尝试在我的自定义NSURLProtocol中返回一个NSURLResponse的子类的对象,但似乎返回的响应总是由正常的NSURLResponse交换。
这是我返回自定义TestURLResponse的NSURLProtocol的一部分:
TestURLResponse* response = [[[TestURLResponse alloc] initWithURL: [[self request] URL]
MIMEType: @"text/plain"
expectedContentLength: 4
textEncodingName:@"UTF-8"]
autorelease];
[self.client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed];
[self.client URLProtocol:self didLoadData: [@"Test" dataUsingEncoding:NSUTF8StringEncoding]];
[self.client URLProtocolDidFinishLoading: self];
当我用这个协议读取某些东西时,我希望得到TestURLResponse类型的响应,但在下面的代码中,我总是得到一个NSURLResponse:
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"test://test"]];
NSURLResponse* response;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSString *className = NSStringFromClass([response class]);
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:className message:className delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
整个测试项目可以在这里下载
http://ul.to/9yylk65s
现在我不知道我是否做错了什么,或者是否有什么坏事。 NSURLProtocol的文档状态
协议实现者可能希望创建一个自定义的,可变的NSURLResponse类来提供特定于协议的信息。
但在我看来,这根本不起作用。
链接地址: http://www.djcxy.com/p/34751.html