0Pricing
SwiftUI Academy · درس

الاستعلام باستخدام @Query

اجلب البيانات الدائمة ورتّبها داخل الواجهات

الاستعلام باستخدام @Query درس مجاني في SwiftUI Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SwiftUI Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SwiftUI Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Fetching Saved Data

To show stored records in a view, you fetch them with @Query. It reads from your container and keeps the view fresh. 🔍

The @Query Property

Declare an array property with @Query and SwiftData fills it with every matching record. No manual loading needed.

@Query private var tasks: [Task]

Showing Results in a List

Pair @Query with a List to render rows from your data. Each saved object becomes one line on screen.

List(tasks) { task in
    Text(task.title)
}

Live Updates

A @Query view updates by itself when data changes. Insert a record and the list redraws with no extra work.

Sorting Results

Pass a sort key path to order your results. Here tasks come back alphabetically by title every time.

@Query(sort: \.title) var tasks: [Task]

Sort Direction

Add order to sort ascending or descending. Newest-first lists feel natural for things like recent notes.

@Query(sort: \.due, order: .reverse)
var tasks: [Task]

Filtering with Predicates

A #Predicate narrows results to records that match a rule. Only the rows you care about reach the view.

#Predicate<Task> { $0.isDone == false }

Applying a Filter

Pass your predicate to @Query to fetch a filtered set. This view shows only the tasks still left to do.

@Query(filter: #Predicate<Task> {
    !$0.isDone })
var open: [Task]

Multiple Sort Keys

Give an array of SortDescriptor values to sort by more than one field. Tie-breaks make long lists feel ordered.

@Query(sort: [SortDescriptor(\.priority)])
var tasks: [Task]

Counting and Empty States

Check the array's isEmpty to show a friendly placeholder. A clear empty state guides new users gently.

if tasks.isEmpty {
    Text("No tasks yet")
}

Queries Stay in Sync

Because @Query watches the store, your UI never drifts from the data. Save once and every query reflects it.

Quick Check

Quick check on querying data.

Recap: Querying

You used @Query to fetch, sort, and filter saved data, and watched the view stay live. Reading from SwiftData is now second nature. 🎯

الأسئلة الشائعة

هل درس «الاستعلام باستخدام @Query» مجاني؟

نعم — نص درس «الاستعلام باستخدام @Query» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SwiftUI Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SwiftUI Academy 4 دروس في المجموع.

ماذا ستتعلم في «الاستعلام باستخدام @Query»؟

اجلب البيانات الدائمة ورتّبها داخل الواجهات تتمرن على SwiftUI Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SwiftUI Academy؟

لا تُشترط خبرة سابقة. SwiftUI Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «الاستعلام باستخدام @Query»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SwiftUI Academy هذا؟

نعم. كل درس في SwiftUI Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف أنواع @Model
  2. حاوية النموذج والسياق
  3. الاستعلام باستخدام @Query
  4. الإدراج والتحديث والحذف
← العودة إلى SwiftUI Academy