NSUserDefaults 는 기본적인 사용자의 데이터를 저장할 수 있다 많은 데이터 저장 시 앱 속도에 문제가 발생 할 수 있다
<NSUserDefaults 는 다양한 형태로 저장 가능>
예 ) 문자열, 배열, 숫자, 날짜 등등
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(25, forKey: "Age")
defaults.setBool(true, forKey: "UseTouchID")
defaults.setDouble(M_PI, forKey: "Pi")
defaults.setObject("Paul Hudson", forKey: "Name")
defaults.setObject(NSDate(), forKey: "LastRun")배열과 딕셔너리 도 가능 하다
let array = ["Hello", "World"]
defaults.setObject(array, forKey: "SavedArray")
let dict = ["Name": "Paul", "Country": "UK"]
defaults.setObject(dict, forKey: "SavedDict")
<예제코드>
let defaults = NSUserDefaults.standardUserDefaults()
let userid = defaults.stringForKey("userid")
if((userid) != nil){
// 값이 저장되어 있을 경우
print(userid)
}else{
// 저장된 값이 없을 경우 데이터 저장
let userid_value= "tester"
defaults.setObject(userid_value, forKey: "userid")
let defaults = NSUserDefaults.standardUserDefaults()
let userid = defaults.stringForKey("userid")
if((userid) != nil){
// 값이 저장되어 있을 경우
print(userid)
}else{
// 저장된 값이 없을 경우 데이터 저장
let userid_value= "tester"
defaults.setObject(userid_value, forKey: "userid")
}
< NSUserDefaults 설정을 찾을 수없는 경우, 디폴트 값>
integerForKey()
returns an integer if the key existed, or 0 if not.boolForKey()
returns a boolean if the key existed, or false if not.floatForKey()
returns a float if the key existed, or 0.0 if not.doubleForKey()
returns a double if the key existed, or 0.0 if not.objectForKey()
returns AnyObject? so you need to conditionally typecast it to your data type.
댓글 없음:
댓글 쓰기