Published on

Qaysi vositani qachon ishlatish

Authors

Uchta persistenslik vositasi endi qo'lingizda. Eng keng tarqalgan chalkashlik β€” ularni qanday ishlatishni bilish emas, balki qaysi birini tanlash. Noto'g'ri vositani tanlash keyinchalik tuzatish uchun noqulay muammolar yaratadi.

Qisqa versiya: @AppStorage sozlamalar uchun, fayllar hujjatlar va eksport uchun, SwiftData tuzilgan yozuvlar to'plami uchun. Har birining o'z joyi bor va ular orasidagi qoplanma ko'rinadiganidan kichik.

Tomon qiyoslash

Xususiyat@AppStorageFayl saqlashSwiftData
Eng mosFoydalanuvchi sozlamalariHujjatlar, eksportTuzilgan yozuvlar to'plami
Ma'lumot turiBool, String, Int, DoubleString, Data, CodableHar qanday @Model sinf
FiltrlashYo'qYo'q β€” hammani yuklaydiHa β€” @Query predikat bilan
SwiftUI reaktivligiHa β€” @State kabiYo'q β€” qo'lda boshqarishHa β€” @Query jonli yangilanadi
iOS versiyasiiOS 14+IstalganiOS 17+
SozlashYo'qMinimal@Model + .modelContainer

Keng tarqalgan xatolar

// ❌ @AppStorage ni noto'g'ri ishlatish
// Butun massivni bitta kalit ostida JSON encode qilish
@AppStorage("vazifalar") var vazifalarJSON: String = "[]"
// Shuni ko'rsangiz β€” to'xtang. Bu SwiftData ishi.

// βœ… To'g'ri yondashuv
@Query var vazifalar: [VazifaElement]
// ❌ Har narsa uchun fayl saqlash
// Filtrlash kerak bo'lganda hamma narsani xotiraga yuklash
let yozuvlar = yozuvlarniYukla()
let bugungilar = yozuvlar.filter { Calendar.current.isDateInToday($0.sana) }

// βœ… SwiftData filtrlashni ma'lumot bazasida bajaradi
@Query(filter: #Predicate<JurnalYozuvi> { Calendar.current.isDateInToday($0.sana) })
var bugungilar: [JurnalYozuvi]
// ❌ SwiftData ni oddiy sozlama uchun ishlatish
@Model class IlovaSozlamalari {
    var qorongRejimda: Bool = false
}
// Bitta Bool uchun ortiqcha murakkablik

// βœ… @AppStorage to'g'ri tanlov
@AppStorage("qorongRejimda") var qorongRejimda: Bool = false

Haqiqiy stsenariylar β€” qaror qo'llanmasi

StsenariyTo'g'ri vositaSabab
Onboarding ko'rilganmi@AppStorageBitta Bool bayroq β€” sozlamalar uchun
200 ta jurnal yozuviSwiftDataFiltrlash va saralash kerak bo'lgan to'plam
Ulashish uchun JSON eksportiFayl saqlashFoydalanuvchi ko'rmoqchi bo'lgan hujjat
Foydalanuvchi tanlagan aksent rang@AppStorageBitta sozlama β€” so'rov kerak emas
Yuzlab element, sana va teglarSwiftDataFiltrlash talabi bor murakkab ma'lumot
Yuklab olingan markdown maqolasiFayl saqlashHujjat β€” bitta fayl, so'rov kerak emas

Bir jumlada qaror qoidasi

  • Sozlama bo'lsa β€” @AppStorage
  • Foydalanuvchi ulashishi mumkin bo'lsa β€” fayl saqlash
  • Ilova boshqaradigan yozuvlar ro'yxati bo'lsa β€” SwiftData

Tezkor ma'lumotnoma

VositaQachonEmas
@AppStorageSodda sozlamalar bayroqlariMassivlar, tuzilgan ma'lumot
Fayl saqlashHujjatlar, eksport, lokal keshFiltrlash, saralash kerak
SwiftDataTuzilgan yozuvlar to'plamiBitta Bool/String sozlama

🎯 Topshiriq: o'z ilovangizni tekshiring

O'zingiz o'ylagan ilova g'oyasini yoki shu kursda yaratgan narsangizni ko'rib chiqing. Qayta yuklanishda saqlanishi kerak bo'lgan har bir ma'lumot uchun qaysi vositani ishlatishingizni hal qiling. Har bir qaror uchun qisqacha sabab yozing. Keyin ro'yxatdagi bir ma'lumotni to'g'ri vosita bilan amalga oshiring va ilova yopib-ochib ma'lumot saqlanganini tasdiqlang.

Buy mea coffee