可变的NSHTTPURLResponse或NSURLResponse

Arl*_*son 3 iphone nsurlconnection nsurlrequest nsurlcache

我需要修改NSURLResponse中的响应头.这可能吗?

Col*_*ett 9

我刚和朋友谈论这件事.我的建议是写一个NSURLResponse的子类.这些方面的东西:

@interface MyHTTPURLResponse : NSURLResponse { NSDictionary *myDict; } 
- (void)setAllHeaderFields:(NSDictionary *)dictionary;
@end

@implementation MyHTTPURLResponse
- (NSDictionary *)allHeaderFields { return myDict ?: [super allHeaderFields]; }
- (void)setAllHeaderFields:(NSDictionary *)dict  { if (myDict != dict) { [myDict release]; myDict = [dict retain]; } }
@end
Run Code Online (Sandbox Code Playgroud)

如果你正在处理一个你没有做过的物体,你可以尝试使用object_setClass这个课程.但是我不知道是否会添加必要的实例变量.objc_setAssociatedObject如果你可以支持一个足够新的SDK,你也可以在一个类别中使用和填充所有内容.