您的位置:首页 > 移动开发 > Swift

Swift#使用字典实现属性列表的存储

2015-06-02 22:45 393 查看
import UIKit

class ViewController:
UIViewController {

//定义常量/宏

let KNAME =
"KNAME"

let KBIRTH =
"KBIRTH"

let KSEX =
"KSEX"

let KNUMBER =
"KNUMBER"

let FileName =
"Student.plist1"

@IBOutlet
weak var nameField :
UITextField!

@IBOutlet
weak var birthField :
UITextField!

@IBOutlet
weak
var sexSeg :
UISegmentedControl!

@IBOutlet
weak var numberField :
UITextField!

@IBOutlet
weak var saveButton :
UIButton!
//点击保存数据

@IBAction
func saveData(sender:
AnyObject) {

do {

let name =
nameField.text

let birth =
birthField.text

let sex :
Int? =
sexSeg.selectedSegmentIndex

let number =
numberField.text

//如果有数据为空则跳出循环

if name ==
"" || birth ==
"" || sex ==nil ||number ==
"" {

let alert =
UIAlertView(title:
"警告",
message: "请填写所有信息",
delegate: nil,cancelButtonTitle:
"确定")
alert.show()

break
}

//创建一个字典用来封装学生信息

var dict = [String:AnyObject]()
dict[KNAME] = name
dict[KBIRTH] = birth
dict[KSEX] = sex
dict[KNUMBER] = number

var nsdict :
NSMutableDictionary =
NSMutableDictionary(dictionary:dict)

//把字典转化为属性列表文件保存

//使用NSMutableDictionary的writeToFile方法

if nsdict.writeToFile(filePath(), atomically:
true) ==
true {

//保存成功,弹出提示

let alert =
UIAlertView(title:
"保存结果",
message: "成功",
delegate: nil, cancelButtonTitle:
"OK")
alert.show()
}
else {

println("保存失败")
}

return
//退出函数

}
while(true)
}

override
func viewDidLoad() {

super.viewDidLoad()

self.saveButton.backgroundColor
= UIColor.redColor()

//每次程序运行时都自动读取Student.plist中的数据

//如果读到文件数据,从文件初始化NSDictionary对象

if
let nsdict =
NSDictionary(contentsOfFile:
filePath()) {

let dict = nsdict
as
Dictionary

let name = dict[KNAME]
as
String

let birth = dict[KBIRTH]
as
String

let sex = dict[KSEX]
as
Int

let number = dict[KNUMBER]
as
String

self.nameField.text = name

self.birthField.text = birth

self.sexSeg.selectedSegmentIndex =
sex

self.numberField.text = number

let alert =
UIAlertView(title:
"数据读取成功",
message: nil, delegate:
nil, cancelButtonTitle:
"OK")
alert.show()
}

}

override
func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can berecreated.
}

//MARK: - ****
自定义方法 ****

//获取沙盒内Document目录路径

func filePath() ->
String {

let paths : [AnyObject] =
NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,
NSSearchPathDomainMask.UserDomainMask,
true)

let documentsDirectory = paths[0]
as
String

println("documentsDirectory=\(documentsDirectory)")

return documentsDirectory.stringByAppendingPathComponent(FileName)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: