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)
}
}
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)
}
}
相关文章推荐
- 奔五的人学iOS:用swift实现获取拼音首字母,支持取一句话中每字拼音首字母
- ?Swift获取手机设备信息
- Swift 代码分享——Calculator without MVC
- Swift的属性,方法,下标脚本以及继承
- Swift中的设计模式
- swift 点击cell没反应,点击后应该跳到指定页面
- 【swift】15-0601 枚举类型
- The Swift Programming Language - Closures
- Swift & the Objective-C Runtime
- Swift学习笔记-函数和闭包(2)
- Swift学习笔记-函数和闭包(1)
- 获取当前时间 swift
- swift 笔记
- Swift学习笔记-判断字符出现的次数
- Swift面向对象-枚举
- 【swift】15-0530 闭包
- 【swift】15-0529 In-Out参数 函数类型
- Swift开发教程--实现UITableView报错does not conform to protocol 'UITableViewDataSource‘
- 从0开始学习Swift开发IOS应用(5)——Button
- KeyStone安装部署笔记