Ma’lumotlarni saqlash


ULASHISH

Ma’lumotlarni saqlash (UserDefaults)

Kichik sozlamalar va parametrlarni UserDefaults yordamida saqlang hamda qiymatlarni App Groups orqali vidjetlarga ulashing.


UserDefaults API

Bayroqlar (flags) yoki oxirgi ishlatilgan qiymatlar kabi kichik sozlamalarni saqlang.

Sintaksis:

  • UserDefaults.standard.set(_:forKey:)
  • .bool(forKey:)
  • SwiftUI @AppStorage("key")

Misol

import SwiftUI

struct UserDefaultsDemo: View {
  @AppStorage("username") private var username = ""
  var body: some View {
    VStack(spacing: 12) {
      Text(username.isEmpty ? "Hello, Guest" : "Hello, " + username)
      TextField("Username", text: $username)
        .textFieldStyle(.roundedBorder)
    }
    .padding()
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { UserDefaultsDemo() }
}
import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

Misolni ishga tushirish »

UserDefaults API bayroqlar yoki oxirgi ishlatilgan qiymatlar kabi kichik sozlamalar va parametrlarni saqlashning oddiy usulini taqdim etadi.

Maslahat: Kattaroq ma’lumotlar yoki sinxronlash uchun Core Data yoki CloudKit dan foydalaning.

UserDefaults’da maxfiy ma’lumotlarni saqlamang.



App Group umumiy sozlamalari (vidjetdan kirish)

Kichik qiymatlarni ilovangiz va vidjet (yoki kengaytmalar) o‘rtasida App Group suite’i yordamida ulashing.

Sintaksis:

  • UserDefaults(suiteName: "group.id")
  • shared.set(_:forKey:)
  • shared.integer(forKey:)

Misol

import SwiftUI
import Foundation

struct AppGroupDemo: View {
  private let suite = UserDefaults(suiteName: "group.com.example.notes")!
  @State private var count: Int = 0
  var body: some View {
    VStack(spacing: 12) {
      Text("Notes count: \(count)")
      HStack {
        Button("Increment") { count += 1; suite.set(count, forKey: "notesCount") }
        Button("Load") { count = suite.integer(forKey: "notesCount") }
        Button("Clear") { suite.removeObject(forKey: "notesCount"); count = 0 }
      }
    }
    .task { count = suite.integer(forKey: "notesCount") }
    .padding()
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { AppGroupDemo() }
}
import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

Misolni ishga tushirish »

Misol: qaydlar sonini ilova va vidjet o‘rtasida ulashish.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!