簡體   English   中英

快速采用NSURLSessionDownloadDelegate協議

[英]swift how to adopt to NSURLSessionDownloadDelegate protocol

我想創建一個采用NSURLSessionDownloadDelegate協議的類

我所做的是:

class imageDelegate: NSURLSessionDownloadDelegate  {
}

那很容易,也很好。 但我想添加它的方法之一。 我這樣做:

class imageDelegate: NSURLSessionDownloadDelegate  {
     @objc func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
        print("asdfasf")
    }
}

然后我得到錯誤:

 Type 'imageDelegate' does not conform to protocol 'NSObjectProtocol'

知道如何解決這個問題嗎?

我通常使用帶有完成塊的調用,因此對使用NSURLSessionDownloadDelegate不太熟悉。

您得到的錯誤表明您需要遵循NSObject協議,該協議告訴我您需要使您的類成為NSObject的子類。 這樣可以使您克服當前遇到的錯誤。

看看NSURLSessionDownloadDelegate協議的文檔。 協議中似乎有3種方法。

編輯:查看協議的標頭,只需要thedidFinishDownloadingToURL方法。 其他2個是可選的。

但是,如果您看一下文檔,他們會說:

NSURLSessionDownloadDelegate協議定義使用NSURLSession下載任務時應實現的委托方法。 除了這些方法之外,請確保在NSURLSessionTaskDelegate和NSURLSessionDelegate協議中實現這些方法,以分別處理所有任務類型和會話級事件共有的事件。

因此,您還需要實現NSURLSessionTaskDelegateNSURLSessionDelegate協議中的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM