반응형
앱을 종료해도 유지할 수 있는 방법들
1. 유저 디폴트(NSUserDefaults)
// 싱글톤 객체
let defaults = NSUserDefaults.standardUserDefaults()
// 내용 저장
defaults.setObject("저장할 내용", forKey: "키값")
// 싱크 문제가 있기 때문에 싱크로나이즈 해줘야 함(성능 하락...)
defaults.synchronize()
// objectForKey()등등으로 얻어올 수 있다.
let name = defaults.stringForKey("name")
이런 저런 퍼포먼스 저하 문제가 있기 때문에 앱의 설정 등을 저장하는데 주로 쓴다. 안드로이드의 sharedReference뭐시기랑 비슷한 것
사용 예제) 현재 날짜 저장하고 복원
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | class ViewController: UIViewController { @IBOutlet weak var datePicker: UIDatePicker! let defaults = NSUserDefaults.standardUserDefaults() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func restore(sender: AnyObject) { let date = defaults.objectForKey("date") as! NSDate setDate(date) } @IBAction func save(sender: AnyObject) { defaults.setObject(getDate(), forKey: "date") } func getDate() -> NSDate{ return datePicker.date } func setDate(date: NSDate) { datePicker.setDate(date, animated: true) } } | cs |
반응형
댓글