التوثيق · التكامل مع 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 وغيرها) — استخدم نطاق تسمية مميزًا لمفاتيحك لتجنب تعارض الأسماء.