【问题标题】:Missing URL(from: NSPasteboard) and Swift 3缺少 URL(来自:NSPasteboard)和 Swift 3
【发布时间】:2016-09-27 04:39:19
【问题描述】:

我有以下功能:

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

我在“URL(来自:粘贴板)”处收到以下错误

参数标签 '(from:)' 不匹配任何可用的重载

据我所知,NSURL 有以下方法。

init?(from pasteBoard: NSPasteboard)

我不知道我做错了什么?

【问题讨论】:

    标签: xcode macos swift3


    【解决方案1】:

    简短的回答是 URL 与 NSURL 不同。对 Swift 3 的更改不仅删除了 NS,以使事情更易于阅读,而且还实现了自己的 NSURL 的简化版本。在 Apple 设备上时,它会秘密使用 NSURL。

    为了修复它,我更改了代码以使用它:

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

    有关删除NS 的更多信息可以在此处找到: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

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多