我需要修改 NSURLResponse 中的响应头。这可能吗?
最佳答案
我刚刚和一个 friend 谈论这个。我的建议是编写一个 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
如果您正在处理一个不是您制作的对象,您可以尝试使用
object_setClass
来调整类。但是我不知道这是否会添加必要的实例变量。如果您可以支持足够新的 SDK,您也可以使用 objc_setAssociatedObject
并将其全部放入一个类别中。关于nsurlconnection - 可变 NSHTTPURLResponse 或 NSURLResponse,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2096651/