Приведите NSSecureCoding к URL в Swift - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть ShareExtension, в котором я получаю URL, и я хотел бы использовать его, но для этого мне нужно cast как String:

@objc func actionButtonTapped(){
        print("yeet")
        var html: String?

        if let item = extensionContext?.inputItems.first as? NSExtensionItem,
            let itemProvider = item.attachments?.first,
            itemProvider.hasItemConformingToTypeIdentifier("public.url") {
            itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil) { (url, error) in
                if (url as? URL) != nil {

                    let urlString = String(contentsOf: url)

                    OpenGraphDataDownloader.shared.fetchOGData(urlString: urlString) { result in
                        switch result {
                        case let .success(data, _):
                            // do something
                            print(data.pageTitle!)
                        case let .failure(error, _):
                            // do something
                            print(error.localizedDescription)
                        }

                    }
                }
            }
        }
}

. код выше выдает это error:

Невозможно преобразовать значение типа 'NSSecureCoding?' к ожидаемому типу аргумента 'URL'

Вопрос:

Как я могу привести NSSecureCoding к URL, чтобы я мог затем преобразовать его как String ?? Ничего не могу найти в этом месте ... Рад за любую помощь!

1 Ответ

0 голосов
/ 29 апреля 2020

Я решил это, сначала приведя его к NSURL, а затем получив absoluteString, например:

let directoryURL = url as! NSURL

let urlString: String = directoryURL.absoluteString!
...