EduFlow
أساسيات Swift لتطبيقات iOS

اختبار الوحدة: إطلاق تطبيق حقيقي

خمسة أسئلة عن هذه الوحدة. أجب عنها كلها، ثم شاهد نتيجتك وسبب صحة كل إجابة أو خطئها.

السؤال 1 من 5

كل عملية جلب تستغرق نحو ثانية. كيف تجعل هذا يستغرق نحو ثانية واحدة في المجمل؟

Swift
func loadAll() async throws -> (Decimal, Decimal) {
    let eur = try await service.fetchRate(from: "USD", to: "EUR")
    let gbp = try await service.fetchRate(from: "USD", to: "GBP")
    return (eur, gbp)
}
السؤال 2 من 5

دالة مساعدة nonisolated تُسند قيمة إلى model.state في نموذج معلّم بـ @MainActor، فتُبلغ Swift 6 بالرسالة “main actor-isolated property ‘state’ can not be mutated from a nonisolated context”. ما الإصلاح الصحيح؟

السؤال 3 من 5

يعيد API الأسعار الحالة HTTP 404 مع صفحة HTML لعملة غير معروفة. وكودك يفكّ ترميز data مباشرة بعد URLSession.shared.data(from:). ماذا يرى المستخدمون؟

السؤال 4 من 5

تربط شاشة تعديل الحقول مباشرة بنموذج SwiftData عبر @Bindable var expense: Expense. ويريد فريق المنتج زر Cancel يتجاهل التغييرات. ما أنظف تصميم؟

السؤال 5 من 5

أيّ اختبار يتحقّق من أن record ترمي BudgetError.overLimit(by: 7)؟

5 أسئلة بلا إجابة