2016-09-27 4 views
1

私は、次の機能があります。欠落(から:NSPasteboard)URLとスウィフト3

引数ラベル ':

override func performDragOperation(_ sender: NSDraggingInfo) -> Bool { 
     let pasteboard = sender.draggingPasteboard() 
     let fileURL = URL(from: pasteboard) 
     // Does something 
} 

を私は "URL(ペーストボードから)" で、次のエラーを取得しています(from :) 'は使用可能なオーバーロードと一致しません

NSURLには次のメソッドがあります。

init?(from pasteBoard: NSPasteboard) 

私が間違っていることを知りませんか?

答えて

1

短い答えはURLがNSURLと同じではありません。 Swift 3への変更は、読みやすくするためにNSを削除するだけでなく、NSURLの単純なバージョンを実装しました。 Appleのデバイスでは、秘密裏にNSURLが使用されます。それを修正する

私はこれを使用するために自分のコードを変更:NSの削除について

let fileURL = NSURL(from: pasteboard) as? URL 

詳しい情報はここで見つけることができます:https://github.com/apple/swift-evolution/blob/master/proposals/0086-drop-foundation-ns.md

あなたがソースコードを表示したい場合は、それが発見されましたここに:https://github.com/apple/swift/blob/master/stdlib/public/SDK/Foundation/URL.swift