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

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)

           

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

            //使用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 = 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)

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值