我们如何在NSURLRequest类别中添加属性并在NSURLRequest中实现getter并在NSMutableURLRequest中实现setter?
我想要做的是在NSMutableURLRequest中设置一些自定义属性并在UiWebView中加载它。我想要UIWebView上的所有请求,无论NSMutableURLRequest还是NSURLRequest都有这些自定义属性,我可以在自定义NSURLProtocol中访问它们。
答案 0 :(得分:0)
我们如何在NSURLRequest类别中添加属性并在NSURLRequest中实现getter并在NSMutableURLRequest中实现setter?
只是你会为任何其他班级做这件事......
@interface NSURLRequest (MyCategory)
@property (nonatomic, assign) int foo;
@end
@implementation NSURLRequest (MyCatgeory)
- (int)foo
{
return 42;
}
- (void)setFoo:(int)f
{
otherVar = f;
}
@end
答案 1 :(得分:0)
向NSURLRequest添加额外属性是一种特殊情况,如下所示:
NSMutableURLRequest + JSONBody.h
@interface NSMutableURLRequest (JSONBody)
@property (nullable, copy, setter=mhf_setJSONBody:) id mhf_JSONBody;
@end
NSMutableURLRequest + JSONBody.m
@implementation NSMutableURLRequest (JSONBody)
-(id)mhf_JSONBody{
return [NSURLProtocol propertyForKey:NSStringFromSelector(@selector(mhf_JSONBody)) inRequest:self];
}
-(void)mhf_setJSONBody:(id)JSONBody{
[NSURLProtocol setProperty:JSONBody forKey:NSStringFromSelector(@selector(mhf_JSONBody)) inRequest:self];
}
@end
这样做而不是通过关联对象允许复制工作!