クイックビューでファイル(ex:.docx、.txt、.ppt、.png)を開きたい、自分のサーバーから2つのファイルをダウンロードしたい、最初のファイルが、私はダウンロードに成功があるのかはわからない、と私はQuick Lookのフレームワークを使用する方法がわからない、それがquicklookでファイルを開く
タイプ「BdDeatilViewControllerは」QLPreviewControllerDataSource」プロトコル に準拠していないと言います'
しかし、私はQLPreviewControllerDataSourceのプロトコルを追加しましたが、誰もそれで私を助けることができますか? 私のコードです、ありがとう!
class BdDeatilViewController:UIViewController,QLPreviewControllerDataSource
{
let quickLookController = QLPreviewController()
var fileUrlArray:[String] = []
var urlArray : [URL] = []
override func viewDidLoad() {
super.viewDidLoad()
addUrlTofile(fileArray: bulletinBoard.attachments!)
stringToUrl(stringArray: fileUrlArray)
quickLookController.dataSource = self
}
@IBAction func openFile(_ sender: Any) {
downloadFile(url: urlArray, atIndex: 0)
quickLookController.currentPreviewItemIndex = 0
navigationController?.pushViewController(quickLookController, animated: true)
}
//add profix url to file
func addUrlTofile(fileArray:Array<String>) {
for file in fileArray {
var newURL:String = ""
newURL = "http://163.18.22.78:81/api/Donwload/" + file
fileUrlArray.append(newURL)
}
}
//convert string array to URL array
func stringToUrl(stringArray:Array<String>) {
for i in stringArray {
let url = URL(string: i)
urlArray.append(url!)
}
}
//download file from server
func downloadFile(url:[URL],atIndex:Int) {
let requestURL = url[atIndex]
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: requestURL)
let session = URLSession.shared
let task = session.dataTask(with: urlRequest as URLRequest) {
(data, response, error) -> Void in
if let httpResponse = response as? HTTPURLResponse {
let statusCode = httpResponse.statusCode
if (statusCode == 200) || ((statusCode == 204)) {
print("Everyone is fine, file downloaded successfully.")
}
}
}
task.resume()
}
func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int {
return urlArray.count
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return urlArray[index] as QLPreviewItem
}
}
あなたが迅速なバージョンを使用していますか? –
私はswift3を使用しました、swift4はすでに利用可能ですか? –
あなたのメソッドシグネチャが無効であることがわかりました このURLからメソッドシグネチャを使用してください。https://developer.apple.com/documentation/quicklook/qlpreviewcontrollerdatasource QLPreviewControllerDataSourceをaltキーを押して、有効なメソッドシグネチャを取得することもできます。 動作するかどうか教えてください。 –