2016-09-11 8 views
9

Jestem w trakcie ponownego udostępniania mojej aplikacji na iPhone'a i teraz executeFetchRequest na moim UIManagedDocument dostaje kod błędu SQLite: 6922. Przeszukałem Internet i nie ma kodu błędu SQLite 6922. Ktoś to widział. Wszystko działało dobrze z Xcode 7.Xcode 8 GM - kod błędu SQLite: 6922, "błąd dysku I/O"

+0

Wychodząc z tego problemu nawet na Xcode 8 po oficjalnym uruchomieniu. –

+0

Mam ten sam problem .. Ktoś go jeszcze rozwiązał? –

+1

Zrobiłem straszną pomyłkę, która spowodowała ten błąd dla mnie: Używałem NSFileManager do usunięcia zdjęcia w katalogu dokumentów. Zdałem zerową nazwę zdjęcia, a proces próbował usunąć dokumenty KATALOG! Nie udało się usunąć, ale uszkodzone rekordy CoreData. – DontKnow

Odpowiedz

2

Wystąpił również ten błąd w iOS 10 po zapisaniu NSManagedObjectContext do NSPersistentStore, który ustawiłem na konkretny plik. Po zapisaniu plik został usunięty (po jego zaszyfrowaniu i zapisaniu jako inny plik) i następnym razem, gdy próbowałem uzyskać dostęp do danych z NSManagedObjectContext przez exectueFetchRequest, próbował pobrać dane z pliku NSPersistentStore, który usunąłem. Ponieważ plik już nie istnieje, podał mi "kod błędu SQLite: 6922," błąd dysku I/O ""

Jeśli nie usunę pliku, który ustawiłem mój NSPersistentStore jako, executeFetchRequest jest w stanie odczytać dane z pliku i nie jest zgłaszany błąd SQLite.

Wygląda na to, że w iOS 10 dane nie pozostają w pamięci lub domyślnie odczytują dane z pliku.

Jeśli uruchomię oryginalny kod w symulatorze iOS 9.3 (XCode 8 GM), działa on tak jak wcześniej i nie wystąpił błąd.

Powiązane problemy