В настоящее время я пытаюсь реализовать пользовательское NSURLProtocol
в приложении Ma c, которое может перехватывать запросы файловых URL.
Я скопировал фиктивный метод canInitWithRequest
из этого руководства
+ (BOOL)canInitWithRequest:(NSURLRequest *)request {
static NSUInteger requestCount = 0;
NSLog(@"Request #%lu: URL = %@", (unsigned long)requestCount++, request.URL.absoluteString);
return NO;
}
и зарегистрирован пользовательский NSURLProtocol
в приложении AppDelegate
:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[NSURLProtocol registerClass:[MyURLProtocol class]];
}
Теперь, если я выполняю следующий код, пользовательский canInitWithRequest
вызывается, как и ожидалось:
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com"];
NSData *data = [NSData dataWithContentsOfURL:url];
Однако, если я изменю строку в приведенном выше коде на (действительный) URL-адрес файла, пользовательский canInitWithRequest
больше не будет вызываться:
NSURL *url = [NSURL URLWithString:@"file:///valid/file/url"];
NSData *data = [NSData dataWithContentsOfURL:url];
Есть ли что-то особенное в URL файлов, которое я пропускаю?