代码之家  ›  专栏  ›  技术社区  ›  Imanou Petit

如何在使用NSItemProviderReading时检索已删除文档的URL lastPathComponent

  •  3
  • Imanou Petit  · 技术社区  · 7 年前

    iOS 11附带拖放功能;滴我想使用它将PDF文件导入我的应用程序。我创建了一个符合 NSItemProviderReading 协议通过实现 object(withItemProviderData:typeIdentifier:) 静态方法和 readableTypeIdentifiersForItemProvider 属性:

    import Foundation
    
    @available(iOS 11.0, *)
    final class MyDropItem: NSObject, NSItemProviderReading {
    
        @objc let data: Data
        @objc let typeIdentifier: String
    
        required init(data: Data, typeIdentifier: String) {
            self.data = data
            self.typeIdentifier = typeIdentifier
            super.init()
        }
    
        static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self {
            return self.init(data: data, typeIdentifier: typeIdentifier)
        }
    
        static var readableTypeIdentifiersForItemProvider: [String] {
            return [kUTTypePDF as String]
        }
    
    }
    

    然而 NSItemProviderReading 不提供从其原始对象导入对象的方法 URL . 因此,我无法检索 统一资源定位地址 并保留一些相关部分,如 lastPathComponent (例如文件名 MyPDFDocument.pdf ).

    为了能够创建 NSItemProviderReading 获取相关对象时的一致性 统一资源定位地址 lastPathComponent ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Imanou Petit    7 年前

    我终于发现 NSItemProvider 具有名为 suggestedName . 建议的名称 应使用以获取已删除项目的名称。