Apps Kit SDK logoApps Kit SDK
개발자 문서 · iOS 연동

7. 로컬 설정 저장 (PreferencesManager)

내부적으로 NSUserDefaults를 사용합니다. 동일한 메서드를 제공하는 클래스가 두 개 있습니다: PreferencesManager와 AppsKitSDKPreferencesManager. 어느 쪽이든 사용할 수 있지만, 두 클래스로 읽기/쓰기를 나누기보다는 하나를 선택해 일관되게 사용하세요.

swift
// Booleans, Ints, Strings, Float, Long all live under the same "addInPreferences" family.
// These look unusual but are the real generated parameter labels — Swift doesn't support
// overloading purely by parameter type, so each overload gets a distinct label:
PreferencesManager.shared.addInPreferences(key: "onboarding_done", value: true)        // Bool
PreferencesManager.shared.addInPreferences(key: "launch_count", value_: 5)              // Int?  (KotlinInt)
PreferencesManager.shared.addInPreferences(key: "user_name", value__: "Talha")          // String?

// ...or use the explicitly-named variants instead, which read more clearly:
PreferencesManager.shared.addInPreferencesAsLong(key: "last_sync_time", value: Int64(Date().timeIntervalSince1970))
PreferencesManager.shared.addInPreferencesAsFloat(key: "scroll_position", value: 12.5)
PreferencesManager.shared.addInPreferencesAsString(key: "user_name", value: "Talha")

PreferencesManager.shared.getStringPreferences(key: "user_name", defaultValue: "")
PreferencesManager.shared.getIntegerPreferences(key: "launch_count", defaultValue: 0)
PreferencesManager.shared.getBooleanPreferences(key: "onboarding_done", defaultValue: false)
PreferencesManager.shared.getLongPreferences(key: "last_sync_time", defaultValue: 0)
PreferencesManager.shared.getFloatPreferences(key: "scroll_position", defaultValue: 0)

// Remove a single key
PreferencesManager.shared.flushSavedCache(key: "user_name")

// Custom serializable object as JSON
PreferencesManager.shared.getCustomPreference(key: "user_profile", serializer: UserProfile.companion.serializer(), defaultJson: nil)

이 저장소는 AKS가 자체 내부 플래그(REMOVE_ADS 등)를 저장하는 데 사용하는 저장소와 동일합니다. 키 충돌을 방지하려면 앱에서 사용하는 키에 별도의 네임스페이스를 지정하세요.