[IOS] UserDefaults에 NSSet 저장 하는 방법
UserDefaults에 NSSet을 직접 저장할 수는 없습니다. UserDefaults는 다음의 데이터 타입들만 지원합니다:
- NSString
- NSNumber
- NSData
- NSDate
- NSArray
- NSDictionary
- Int, Float, Double, Bool
따라서, NSSet을 UserDefaults에 저장하려면 NSSet을 배열(Array)로 변환한 후 저장해야 합니다.
아래는 NSSet을 UserDefaults에 저장하는 예제입니다:
// NSSet 생성
let myNSSet: Set<String> = ["apple", "banana", "orange"]
// NSSet을 배열로 변환
let myArray = Array(myNSSet)
// UserDefaults 객체 생성
let userDefaults = UserDefaults.standard
// 배열 저장
userDefaults.set(myArray, forKey: "mySetKey")
// UserDefaults 변경사항 저장
userDefaults.synchronize()`
이제 UserDefaults에서 저장된 값을 다시 불러올 수 있습니다:
// UserDefaults 객체 생성
let userDefaults = UserDefaults.standard
// 배열로 저장된 NSSet 불러오기
if let storedArray = userDefaults.array(forKey: "mySetKey") as? [String] {
// 배열을 다시 NSSet으로 변환
let storedNSSet = Set(storedArray)
print("Stored NSSet: \(storedNSSet)")
}
위의 예제에서, NSSet을 UserDefaults에 저장하기 위해 Set을 배열로 변환하고 저장한 뒤, 다시 배열을 불러와 NSSet으로 변환하여 사용합니다. 이렇게 하면 NSSet을 UserDefaults에 저장하고 불러올 수 있습니다.