2016-11-02 2 views
0

Я пытаюсь отправить файл данных с Apple Watch на сопряженный iPhone через WatchConnectivity. Мой код выглядит следующим образом:нет файла в очереди передачи через WatchConnectivity и WCSession

let data = try? JSONSerialization.data(withJSONObject: self.storedData, options : .prettyPrinted) 

    let str = String(data: data!, encoding: String.Encoding.utf8) 
    print(str) 

    var fileName = "" 
    let tempDirectory = NSTemporaryDirectory() 
    fileName = tempDirectory + "test.json" 

    if self.fileManager.createFile(atPath: fileName, contents: data 
     , attributes: nil) { 
     print("New file creation went through!") 
    } 

    if self.fileManager.fileExists(atPath: fileName) { 
     print("File created @ \(fileName)") 
    } else { 
     print("Something wrong when creating file @ \(fileName)") 
    } 

    var fileTransferString = "file://" 
    fileTransferString += fileName 

    let url = URL(string: fileTransferString) 
    self.session.transferFile(url!, metadata: nil) 
    print("\(self.session.outstandingFileTransfers.count) files in the transfer queue!") 

Хотя я получил сообщение, что «созданный файл @ ...», следующее сообщение в последней строке «печать» всегда «0 файлов в очереди передачи!» Я не обнаружил, что какой-либо объект не был инициирован или нуль на протяжении всего процесса. Кажется, что файл был создан, но функция «session.transferFile» просто не прошла.

Может кто-нибудь помочь мне в некоторых подсказках относительно того, где проблема и как ее решить?

Спасибо всем!

Пол

ответ

0

Попробуйте изменить последние две строки:

self.session.transferFile(url!, metadata: nil) 
DispatchQueue.global(attributes: .qosUserInitiated).async { 
    print("\(self.session.outstandingFileTransfers.count) files in the transfer queue!") 
} 

Любая разница?

Смежные вопросы