我正在使用MonoTouch构建iOS应用程序并试图实现自定义的NSUrlProtocol。在MonoTouch中注册自定义NSUrlProtocol
当我登记我自己的协议实现中,我得到以下错误:
WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: * -canInitWithRequest: only defined for abstract class. Define -[Foo.Network.NetworkServices+TestProtocol canInitWithRequest:]!
什么可能会导致这有什么想法?
下面是代码:
//Registering the protocol
NSUrlProtocol.RegisterClass(new Class(typeof(TestProtocol)));
public class TestProtocol : NSUrlProtocol
{
public TestProtocol()
{
this.Client = new TestProtocolClient();
}
public override bool CanInitWithRequest (NSUrlRequest request)
{
return true;
}
}
public class TestProtocolClient : NSUrlProtocolClient
{
public override void DataLoaded (NSUrlProtocol protocol, NSData data)
{
}
public override void FailedWithError (NSUrlProtocol protocol, NSError error)
{
}
public override void ReceivedResponse (NSUrlProtocol protocol, NSUrlResponse response, NSUrlCacheStoragePolicy policy)
{
}
public override void Redirected (NSUrlProtocol protocol, NSUrlRequest redirectedToEequest, NSUrlResponse redirectResponse)
{
}
public override void CachedResponseIsValid (NSUrlProtocol protocol, NSCachedUrlResponse cachedResponse)
{
}
public override void FinishedLoading (NSUrlProtocol protocol)
{
}
public override void ReceivedAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge)
{
}
public override void CancelledAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge)
{
}
}