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

来源:互联网 发布:安藤忠雄小筱邸数据 编辑:程序博客网 时间:2024/06/05 06:19

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!

   @IBOutletweakvar 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)

           

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

           //使用NSMutableDictionarywriteToFile方法

          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 = nsdictas 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)

    }

}


0 0