1

我们如何在 NSURLRequest 的类别中添加属性,并在 NSURLRequest 中实现 getter,在 NSMutableURLRequest 中实现 setter?

我想要做的是在 NSMutableURLRequest 中设置一些自定义属性并将其加载到 UiWebView 中。我想要来自 UIWebView 的所有请求,无论 NSMutableURLRequest 或 NSURLRequest 是否具有这些自定义属性,我可以在自定义 NSURLProtocol 中访问它们。

4

2 回答 2

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
于 2013-02-27T16:20:05.863 回答
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

以这种方式而不是通过关联对象执行此操作可以让复制工作!

于 2016-11-10T00:13:52.223 回答