2015-12-11 1 views
2

Как создать пустой файл plist без использования метода .copyItemAtPath из экземпляра файлового менеджера на plist в главном комплекте? Я хочу проверить, уже создан ли plist в моем DocumentDirectory, если не создать пустой plist, а затем создать и сохранить пары значений ключа для хранения в plist.Создание файла plist программно без копирования plist из моего основного пакета

+1

PLIST является либо '' NSArray' или NSDictionary'. Начните с этого. – rmaddy

+0

@rmaddy вы имеете в виду, что * root * может быть только массивом или словарем, и он не может быть чем-то еще, но значения могут быть чем-то вроде массива, словаря, строки, данных, даты? – Honey

+0

@ Honey Да, это правильно. – rmaddy

ответ

9
let fileManager = NSFileManager.defaultManager() 

    let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 
    let path = documentDirectory.stringByAppendingString("/profile.plist") 

    if(!fileManager.fileExistsAtPath(path)){ 
     print(path) 

     let data : [String: String] = [ 
      "Company": "My Company", 
      "FullName": "My Full Name", 
      "FirstName": "My First Name", 
      "LastName": "My Last Name", 
      // any other key values 
     ] 

     let someData = NSDictionary(dictionary: data) 
     let isWritten = someData.writeToFile(path, atomically: true) 
     print("is the file created: \(isWritten)") 



    }else{ 
     print("file exists") 
    } 

Это то, что сработало для меня.

Для быстры 3+

let fileManager = FileManager.default 

    let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String 
    let path = documentDirectory.appending("/profile.plist") 

    if(!fileManager.fileExists(atPath: path)){ 
     print(path) 

     let data : [String: String] = [ 
      "Company": "My Company", 
      "FullName": "My Full Name", 
      "FirstName": "My First Name", 
      "LastName": "My Last Name", 
      // any other key values 
     ] 

     let someData = NSDictionary(dictionary: data) 
     let isWritten = someData.write(toFile: path, atomically: true) 
     print("is the file created: \(isWritten)") 



    } else { 
     print("file exists") 
    }