Что такое query (запрос) в контексте iOS-разработки?

«Что такое query (запрос) в контексте iOS-разработки?» — вопрос из категории Базы данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Query (запрос) — это инструкция для извлечения, изменения или удаления данных из источника (базы данных, API, хранилища).

1. Запросы к локальным базам данных (например, Core Data):

// Создание запроса (FetchRequest) для сущности `Person`
let request: NSFetchRequest<Person> = Person.fetchRequest()

// Предикат (Predicate) — условие фильтрации
request.predicate = NSPredicate(format: "age > %d AND department == %@", 25, "Engineering")

// Дескрипторы сортировки (SortDescriptors)
request.sortDescriptors = [NSSortDescriptor(key: "lastName", ascending: true)]

// Ограничение количества результатов
request.fetchLimit = 50

// Выполнение запроса в контексте (NSManagedObjectContext)
do {
    let employees = try context.fetch(request)
    // Обработка результатов
} catch {
    print("Fetch failed: (error)")
}

2. Запросы к REST API (URL Query Parameters):

// Параметры запроса часто передаются в URL после `?`
// https://api.example.com/users?page=2&limit=20&sort=name
let queryItems = [
    URLQueryItem(name: "page", value: "2"),
    URLQueryItem(name: "limit", value: "20"),
    URLQueryItem(name: "sort", value: "name")
]

Ключевые компоненты запроса: фильтрация (WHERE), сортировка (ORDER BY), пагинация (LIMIT/OFFSET), выборка конкретных полей.