Xamarin 中的 NSUrlSession

Kas*_*hif 3 xamarin.ios ios xamarin

我已经开始学习 Xamarin 并创建了用于从服务器检索数据的小教程。我使用过 NSUrlSession 机制。下面是我的代码。我不确定为什么 NSUrlSession 会显示警告。请帮助我理解和解决这个警告。

警告 CS0618:“NSUrlSession.FromConfiguration(NSUrlSessionConfiguration, NSUrlSessionDelegate, NSOperationQueue)”已过时:“使用带INSUrlSessionDelegate参数的重载”。(CS0618) (SampleApp)

    public void getData() {

        NSUrl url = new NSUrl("some url");
        NSUrlRequest request = new NSUrlRequest(url);
        NSUrlSession session = null;
        NSUrlSessionConfiguration myConfig = NSUrlSessionConfiguration.DefaultSessionConfiguration;
        session = NSUrlSession.FromConfiguration(myConfig, new MySessionDelegate (), new NSOperationQueue ());
        NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => {

        });
        task.Resume();
    }

    public class MySessionDelegate : NSUrlSessionDelegate, INSUrlSessionDelegate
    {

    }
Run Code Online (Sandbox Code Playgroud)

Sus*_*ver 5

NSUrlSessionDelegate实现INSUrlSessionDelegate协议,因此您可以转换它:

session = NSUrlSession.FromConfiguration(myConfig, (new MyNSUrlSessionDelegate() as INSUrlSessionDelegate), new NSOperationQueue());
Run Code Online (Sandbox Code Playgroud)

或者:

将您更改UrlSessionDelegate为继承自然NSObject后实施INSUrlSessionDelegate协议:

public class MySessionDelegate : NSObject, INSUrlSessionDelegate
{
   ~~~ implement the protocols that you need
}
Run Code Online (Sandbox Code Playgroud)