Нет.
Однако вы можете swizzle -[NSURLRequest initWithURL:cachePolicy:timeoutInterval:]
, чтобы предотвратить отправку запроса с самого начала, например:
static id (*oldMethod)(id self, SEL _cmd, NSURL* theURL, ....);
static id newMethod(id self, SEL _cmd, NSURL* theURL, ....) {
if ([[theURL absoluteString] hasPrefix:@"http://example.com"]) {
[self release];
return nil;
}
return oldMethod(self, _cmd, theURL, cachePolicy, timeoutInterval);
}
....
Method m = class_getInstanceMethod([NSURLRequest class],
@selector(initWithURL:cachePolicy:timeoutInterval:));
oldMethod = method_setImplementation(m, newMethod);
Обратите внимание, что возврат nil
вообще не безопасно.Возможно, что запрос будет сохранен в некоторой структуре данных, и программа потерпит крах.