본문 바로가기
Swift

데이터 저장(UserDefault)

by 루에 2015. 10. 27.
반응형

앱을 종료해도 유지할 수 있는 방법들


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




반응형

댓글