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)
}
}