2015-02-16 3 views
1

Я пытаюсь добавить послесвечения в моем приложении, поэтому я должен читать и писать в файлXcode, ios8, быстры, файлы и массивы

Это код, я использую для чтения:

let path = NSBundle.mainBundle().pathForResource("Data", ofType: "txt") 
var text = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil)! 

и это линия я использую, чтобы написать

text.writeToFile(path!, atomically: false, encoding: NSUTF8StringEncoding, error: nil) 

Здесь происходит что-то странное, не data.txt файл в моей папке проекта, но это works.Why?

Чтобы решить эту проблему, я удалил несколько папок, создал файл Data.txt в папке проекта, и приложение отлично работает, но я не вижу данные, хранящиеся в txt-файле, почему? И если я удалю файл, приложение не будет 't показывать ошибки и продолжает работать, даже если я переехал в трэш файл. Как это возможно? Как я могу отредактировать или удалить этот файл до его загрузки в приложение?

Другой вопрос, у меня есть то, что я хотел бы использовать массив вместо большой строки, массив должен быть, как этот

var array = [(number:Int(),name:String(),date:String())] 

файл TXT имеет следующую структуру число \ TName \ TDate \ nnumber \ tname \ tdate и т. д.

Я не знаю, как разделить различные строки файла на массив и 3 элемента строки на элемент массива, используя «\ n» в качестве разделителя для элементы и \ t для разделения Int и двух строк

И я не знаю, как сохранить массив в txt-файле и перезагрузить его, нужно ли использовать некоторые для цикла или некоторое время или есть какая-то функция, характерная для моего случая?

Благодаря

ответ

3

Вы не сможете сохранить кортеж с помощью NSUserDefaults, так что я думаю, вы должны использовать подмассив группировать данные перед сохранением:

class Load { 
    class func array(key:String) -> [AnyObject]! { 
     return NSUserDefaults.standardUserDefaults().arrayForKey(key) 
    } 
} 
class Save { 
    class func array(key:String, _ value:[AnyObject]){ 
     NSUserDefaults.standardUserDefaults().setObject(value, forKey: key) 
    } 

} 
var number = 15 
var name = "John" 
var date = NSDate() 

var myArray:[[AnyObject]] = [] 

myArray.append([number,name,date]) 

Save.array("myArray", myArray) 

number = 16 
name = "Jane" 
date = NSDate().dateByAddingTimeInterval(60*60*24) 

myArray.append([number,name,date]) 
Save.array("myArray", myArray) 


let loadedArray = Load.array("myArray") 
Смежные вопросы