2017-05-12 1 views
0

J'essaie de créer un fichier json sur un périphérique Apple TV pour enregistrer des données mais createFile (...) échoue toujours, renvoyant false. J'ai essayé avec absolutePath, relativePath et le chemin sans succès. La variable jsonData est créée très bien dans ma mise en œuvre et cela fonctionne sur le simulateur:Le fichier createFile de TVOS FileManager échoue avec l'erreur 1

self.fileName = "MyFileTest" 
self.directory = .documentDirectory 

let documentsDirectory = fileManager.urls(for: self.directory, in: .userDomainMask)[0] 

self.fullyQualifiedPath = documentsDirectory.appendingPathComponent(self.fileName).appendingPathExtension("json").path 

do { 
    let jsonData = try convertObjectToData(data: dataForJson) 
    if !fileManager.createFile(atPath: fullyQualifiedPath, contents: jsonData as Data, attributes: nil) { 
     print("File Manager failed at createFile") 
     throw FileErrors.FileNotSaved 
    } 
} catch { 
    print("Unable to create json file \(error.localizedDescription)") 
    throw FileErrors.FileNotSaved 
} 

Ici CreateFile échoue et renvoie faux et ce qui suit est imprimé:

Gestionnaire de fichiers a échoué à Createfile Impossible de create json file L'opération n'a pas pu être terminée. ( . TestAppTVOS.FileSaveHelper (FileErrors dans _70D0A1275AC2AFFFA4ED048E3A809030) Erreur 1.)

La valeur de la variable est fullyQualifiedPath:

/var/mobile/Containers/Data/Application/00DCB709-5EC6-40FC -BB21-D797EB4FE2F5/Documents/MyFileTest.json

Je ne sais pas quoi faire de ce message d'erreur « L'opération n'a pas pu être terminée » et « erreur 1 »? Des idées pour que cela fonctionne correctement pour Swift 3?

Répondre

0

Après avoir passé un peu trop de temps à cela, il semble qu'il était lié à quel dossier je créais le fichier.

Comme je suis en mode bac à sable/débogage je ne pouvais pas écrire aux documents dossier de sorte qu'au lieu a dû basculer vers le dossier Cache.

par exemple
self.directory = .cachesDirectory 

fonctionne maintenant.