數據持久化方式:
NSUserDefault:var userDefaults =NSUserDefaults.standardUserDefaults()
userDefaults.setObject(text, forKey:"inputTextField")
var text = userDefaults.stringForKey("inputTextField")
//將字典的值註冊到NSUserDefault
userDefaults.registerDefaults(defaultToRegisteras [NSObject :AnyObject])
Setting Bundle:新建Setting Bundle 文件
var settingBundle =NSBundle.mainBundle().pathForResource("Settings", ofType:"bundle")!
var root =NSDictionary(contentsOfFile: settingBundle.stringByAppendingPathComponent("Root.plist"))
var preferences = root!.objectForKey("PreferenceSpecifiers")as! Array<NSDictionary>
var defaultToRegister =NSMutableDictionary(capacity: root!.count)
for preferencein preferences {
var value = preference.objectForKey("Identifier")as? String
if let value = value {
defaultToRegister.setValue(preference.objectForKey("Default Value"), forKey: value)
}
}
通用文件存儲
//獲取文件路徑
func getFilePath(#fileName:String)->String{
var path =NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask,true)
var documentDirectory = path[0]as! String
return documentDirectory.stringByAppendingPathComponent(fileName)
}
//存儲數據
var text =textField.text
var txtFilePath =getFilePath(fileName: "data.txt")
text.writeToFile(txtFilePath, atomically:true, encoding: NSUTF8StringEncoding, error:nil)
//讀取數據
var txtFilePath =getFilePath(fileName: "data.txt")
if NSFileManager.defaultManager().fileExistsAtPath(txtFilePath){
var text = String(contentsOfFile: txtFilePath, encoding:NSUTF8StringEncoding, error: nil)
textField.text = text
}
對象歸檔:
//存儲數據
var txtFilePath = getFilePath(fileName: "data2.txt")
var person = Person()
person.name = text
var data = NSKeyedArchiver.archivedDataWithRootObject(person)
data.writeToFile(txtFilePath, atomically: true)
//讀取數據
var txtFilePath = getFilePath(fileName: "data2.txt")
var person = NSKeyedUnarchiver.unarchiveObjectWithFile(txtFilePath) as! Person
textField.text = person.name
SQLite:
//加載數據庫
var sqliteFilePath = getFilePath(fileName: "database")
var manager = NSFileManager.defaultManager()
if manager.fileExistsAtPath(sqliteFilePath){
println("數據庫已經存在!")
}else{
println("數據庫不存在,正在創建。。。。。")
}
var database:COpaquePointer = nil
var createDatabaseResult = sqlite3_open(sqliteFilePath, &database)
if createDatabaseResult == SQLITE_OK{
println("數據庫創建成功!")
println("開始創建textfield表!")
var createSQL = "CREATE TABLE IF NOT EXISTS TEXTFIELD(ID INTEGER PRIMARY KEY AUTOINCREMENT,TEXT TEXT)"
var errorMessage :UnsafeMutablePointer<Int8> = nil
var createTableResult = sqlite3_exec(database, createSQL, nil, nil, &errorMessage)
if createTableResult == SQLITE_OK{
println("表格創建成功")
}else{
println("表格創建失敗,錯誤原因:\(errorMessage)")
}
}
sqlite3_close(database)
println("數據操作完畢 關閉數據庫")
//讀取數據
var text = ""
var database:COpaquePointer = nil
var savedData:COpaquePointer = nil
var sqliteFilePath = getFilePath(fileName: "database")
var createDatabaseResult = sqlite3_open(sqliteFilePath, &database)
if createDatabaseResult == SQLITE_OK{
var selectSQL = "SELECT ID,TEXT FROM TEXTFIELD"
var selectDataResult = sqlite3_prepare_v2(database, selectSQL, -1, &savedData, nil)
while sqlite3_step(savedData) == SQLITE_ROW {
var ID = sqlite3_column_int(savedData, 0)
var textField = String.fromCString(UnsafePointer(sqlite3_column_text(savedData, 1)))
text += "ID\(ID):\(textField!)。"
}
sqlite3_finalize(savedData)
sqlite3_close(database)
}
Core DataiCloud