Jiwift

[iOS/Swift] UserDefaults 사용법 저장하고 불러오기 간단한 데이터 저장, String, Int, Bool, Array 본문

iOS Dev/iOS

[iOS/Swift] UserDefaults 사용법 저장하고 불러오기 간단한 데이터 저장, String, Int, Bool, Array

지위프트 2023. 1. 8. 01:09
반응형

 iOS에서는 기본적으로 지원하는 저장소가 몇 가지 있는데 그중에 가장 사용하기 간편한 UserDefaults를 알아보겠습니다. 간단한 방법으로 앱의 아무 곳에서 불러오고 저장할 수 있습니다.

 

 저장 가능한 데이터로는 일반 유형인 floats, doubles, integers, Boolean values, URLs, String 뿐만 아니라 NSData, NSString, NSNumber, NSDate, NSArra, NSDictionary도 가능합니다. 

 

 키와 데이터로 구성되어 사용하기 때문에 설정 값, 신호같은 간단한 데이터를 저장하는 데 사용됩니다. 많은 양의 데이터는 DB를 다루는 친구들을 사용하는 게 좋습니다. 

 

 자세한 설명은 아래 Apple 공식 문서를 읽어주세요.

UserDefaults | Apple Developer Documentation

 

Apple Developer Documentation

 

developer.apple.com

 

사용

UserDefaults.standard.set(faceIdSetting, forKey: "faceIdSetting")

 위와 같은 방법을 UserDefaults에 원하는 정보를 저장할 수 있습니다.

 

 

let defaults = UserDefaults.standard

defaults.set(inputDataOne, forKey: "myDataOne")
defaults.set(inputDataTwo, forKey: "myDataTwo")
defaults.set(inputDataThree, forKey: "myDataThree")

 UserDefaults를 변수로 만들어 사용하면 위와 같이 사용 가능합니다.

 

//MARK: - String
// 저장하기
func setString(string: String) {
	defaults.set(string, forKey: "string")
}
// 불러오기
func getString() -> String {
    if let string = defaults.object(forKey: "string") {
    	return string as! String
    }
    return ""
}

 저는 주로 함수로 만들어서 사용하고 있습니다. 

 

아래는 타입별로 만들어둔 함수입니다.

//MARK: - String
// 저장하기
func setString(string: String) {
	defaults.set(string, forKey: "string")
}
// 불러오기
func getString() -> String {
    if let string = defaults.object(forKey: "string") {
    	return string as! String
    }
    return ""
}

//MARK: - Int
// 저장하기
func setInt(int: Int) {
	defaults.set(int, forKey: "int")
}
// 불러오기
func getInt() -> Int {
    if let int = defaults.object(forKey: "int") {
    	return int as! Int
    }
    return 0
}

//MARK: - Bool
// 저장하기
func setBool(bool: Bool) {
	defaults.set(bool, forKey: "bool")
}
// 불러오기
func getBool() -> Bool {
    if let bool = defaults.object(forKey: "bool") {
    	return bool as! Bool
    }
    return false
}

//MARK: - Array
// 저장하기
func setArray(array: [String]) {
	defaults.set(array, forKey: "array")
}
// 불러오기
func getArray() -> Array<String> {
    if let array = defaults.array(forKey: "array") {
    	return array as! Array
    }
    return []
}

 이 정도만 알고 있어도 원하는 데이터는 충분하게 담을 수 있습니다. 

 

 

전체 코드

SwiftExample/UserDefatults at main · wlxo0401/SwiftExample (github.com)

 

GitHub - wlxo0401/SwiftExample: My study, record and share

My study, record and share. Contribute to wlxo0401/SwiftExample development by creating an account on GitHub.

github.com

 

반응형