Что означает ошибка 1003
Ошибка NSURL 1003 — это код NSURLErrorFileNotFoundError. Он появляется, когда приложение пытается загрузить ресурс по URL, а файл по этому адресу отсутствует. Ошибка может проявляться как в сетевом запросе, так и при работе с локальными файлами (например, изображением из папки приложения).
Причины возникновения
- Файл удалён или перемещён – ресурс больше не существует на сервере или в файловой системе устройства.
- Неверный URL – опечатка, устаревший адрес или неправильный параметр запроса.
- Отсутствие интернет-соединения – запрос не может достигнуть целевого сервера.
- Недостаточные права доступа – приложение не имеет разрешения на чтение файла (например, отсутствие
NSFileReadOnlyPermission). - Проблемы с кэшированием – устаревший локальный кэш содержит ссылку на несуществующий ресурс.
- Изменения в конфигурации сервера – например, файл удалён из CDN или изменился путь к ресурсу.
Способы решения
Способ 1: Убедиться, что ресурс доступен
- Откройте браузер на компьютере или iOS-устройстве.
- Перейдите по URL, который использует приложение.
- Проверьте, что файл существует и доступен (HTTP-статус 200).
💡 Совет: Сохраните прямую ссылку на файл, чтобы убедиться, что она не изменится во время отладки.
Способ 2: Проверить интернет-соединение
- Отключите Wi-Fi или мобильные данные на устройстве.
- Включите их обратно.
- Откройте другую веб-страницу, чтобы убедиться в работе сети.
Если соединение отсутствует, подключитесь к другой сети или перезагрузите роутер.
Способ 3: Проверить права доступа в коде
В Xcode отобразите консоль отладки (⌘+Shift+Y). Найдите строку, где происходит загрузка:
// Пример кода, где возникает ошибка
URLSession.shared.data(from: url) { data, response, error in
if let error = error {
if let nsError = error as? NSError,
nsError.code == 1003 {
print("Файл не найден: \(url)")
}
}
}
Убедитесь, что:
- Ресурс указан правильно (полный путь, имя файла, расширение).
- В
Info.plistесть записьNSAppTransportSecurity, если требуется доступ к интернету. - Приложение имеет права на чтение файла (
NSFileReadOnlyPermission).
Способ 4: Очистить кэш и перезапустить приложение
- Перейдите в Настройки → Основные → Хранилище и память.
- Найдите нужное приложение и нажмите Удалить приложение.
- Переустановите его из App Store.
⚠️ Важно: Очистка кэша может удалить временные данные, но поможет устранить ошибки, связанные с устаревшими ссылками.
Способ 5: Сбросить настройки сети
- Откройте Настройки → Основные → Сброс.
- Выберите Сбросить настройки сети.
- Подтвердите действие.
После сброса повторите попытку загрузки в приложении.
Профилактика
- Кэшируйте ресурсы локально с использованием безопасного срока жизни кэша.
- Проверяйте наличие файлов перед загрузкой с помощью
URLSessionилиNSFileManager. - Используйте надежные URL и отслеживайте изменения на сервере (например, через вебхуки).
- Тестируйте в реальных условиях на разных сетевых профилях (Wi-Fi, мобильная сеть).
- Ведите логирование для быстрой идентификации отсутствующих ресурсов.
Эти шаги помогут быстро устранить ошибку NSURL 1003 и минимизировать её повторное появление.