You should use NSKeyedArchiver/NSKeyedUnarchiver to read/write your array as a property list file instead of a text file. You can save your file to the preferences folder inside the Library folder:
let preferencesDirectory = try! NSFileManager().URLForDirectory(.LibraryDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true).URLByAppendingPathComponent("Preferences", isDirectory: true)
let listOfTasksURL = preferencesDirectory.URLByAppendingPathComponent("listOfTasks.plist")
var listOfTasks: [[String]] {
get {
return NSKeyedUnarchiver.unarchiveObjectWithFile(listOfTasksURL.path!) as? [[String]] ?? []
}
set {
NSKeyedArchiver.archiveRootObject(newValue, toFile: listOfTasksURL.path!)
}
}
If you would like to test it in a playground file you will need to save it to the documents directory:
let documentsDirectory = try! NSFileManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
let listOfTasksURL = documentsDirectory.URLByAppendingPathComponent("listOfTasks.plist")
var listOfTasks: [[String]] {
get {
return NSKeyedUnarchiver.unarchiveObjectWithFile(listOfTasksURL.path!) as? [[String]] ?? []
}
set {
NSKeyedArchiver.archiveRootObject(newValue, toFile: listOfTasksURL.path!)
}
}
listOfTasks = [["Hi", "Hello", "12:00"],["Hey there", "What's up?", "3:17"]]
listOfTasks // [["Hi", "Hello", "12:00"], ["Hey there", "What's up?", "3:17"]]