数据持久化方式:
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 Data
- iCloud