【发布时间】:2015-01-08 18:09:39
【问题描述】:
在 iOS8 发布之前,我下载了 iOS8 SDK 来观察我的应用程序将如何工作。有时我的应用程序需要从服务器下载数据,我为此使用 NSUrlSession。现在,当应用程序准备下载会话时,会出现下一个警告:
+backgroundSessionConfiguration: is deprecated. Please use +backgroundSessionConfigurationWithIdentifier: instead。
之后我的应用程序崩溃并出现下一个异常:
Unable to cast object of type 'MonoTouch.Foundation.NSUrlSessionTask' (Objective-C type: '__NSCFBackgroundDownloadTask') to type 'MonoTouch.Foundation.NSUrlSessionDownloadTask'.
Additional information:
Selector: URLSession:downloadTask:didFinishDownloadingToURL:
Method: Microsoft.Synchronization.ClientServices.NSUrlDownloadDelegate:DidFinishDownloading (MonoTouch.Foundation.NSUrlSession,MonoTouch.Foundation.NSUrlSessionDownloadTask,MonoTouch.Foundation.NSUrl)
创建 NSUrlSession 的代码:
NSUrlSessionConfiguration sessionConfiguration = NSUrlSessionConfiguration.BackgroundSessionConfiguration(urlSessioinId);
NSUrlDownloadDelegate downloadDelegate = new NSUrlDownloadDelegate();
NSUrlSession downloadSession = NSUrlSession.FromConfiguration(sessionConfiguration, downloadDelegate, new NSOperationQueue());
感谢您的帮助!
【问题讨论】:
-
很有可能,您使用 iOS 8 重新编译,因此您应该使用新方法。因此,您也应该为此下载最新的 Alpha 版。
-
所以,我将 Xamarin.iOS 更新到版本 7.9.3.52,但仍然无法正常工作。 NSUrlSessionConfiguration 中没有像“BackgroundSessionConfigurationWithIdentifier”这样的方法,方法“BackgroundSessionConfiguration”仍在导出属性“backgroundSessionConfiguration:”参数中使用。
-
我在 iOS 7 上也遇到了这个问题。从未更新到 iOS 8,所以这可能是一个普遍问题。
标签: xamarin.ios xamarin ios8 deprecated nsurlsession