2
NSURLSessionDownloadTaskの拡張機能があります。この拡張機能の中で、Objective C Associated Objectsを使用して 'id'という名前のストアドプロパティを作成しました。プロパティを設定しようとすると、「インスタンスに送信された認識できないセレクタ」が表示されます。以下は私のコードです:Swift:拡張機能のストアドプロパティが認識されないセレクタ例外
extension NSURLSessionDownloadTask {
private struct AssociatedKeys {
static var id: String?
}
var id: String? {
get {
return objc_getAssociatedObject(self, &AssociatedKeys.id) as? String
}
set {
if let newValue = newValue {
objc_setAssociatedObject(self, &AssociatedKeys.id, newValue as String?, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
}
後で;
let task = session.downloadTaskWithURL(url)
task.id = identifier