Подтвердить что ты не робот

Странные новые ошибки iOS 7: приемник от DB/ForceShrinkPersistentStore_NoLock

Добрый день.

У меня есть проект, который использует множество сетевых подключений с SSL. Этот проект работает нормально и без ошибок на iOS 5 и 6. Но с новым iOS 7 я продолжаю получать эти две ошибки:

ERROR: unable to get the receiver data from the DB

ForceShrinkPersistentStore_NoLock -delete- We do not have a BLOB or TEXT column type.  Instead, we have 5.

Они никоим образом не связаны, и я продолжал получать первый за несколько недель, а потом я тоже получил второй.

Они получены в начале моего приложения, в этот момент я отправляю несколько HTTP POST и обрабатываю полученные данные. Я не могу понять, откуда берутся эти ошибки.

Я мог бы найти их, если бы мог понять их. Кто-нибудь знает, что они означают или в каких случаях их можно вызвать?

4b9b3361

Ответ 1

У меня также была первая из ваших проблем только сегодня:

ERROR: unable to get the receiver data from the DB

Я не знаю причины (возможно, каким-то образом кеш стал коррумпированным), но удаление всей папки "Симулятор приложений" заставила проблему уйти для меня.

rm -rf ~/Library/Application Support/iPhone Simulator/7.0-64/Applications/*

Ответ 2

У меня такая же проблема, но есть время отладки на устройстве iOS (iPhone 4 iOS 7.0.4)

Не уверен, что вызывает это... Но я попробовал удалить приложение на устройстве и повторить попытку, затем ошибка исчезла.

Ответ 3

Эта ошибка обычно возникает в iOS7, и причина может быть проблемами кэша. Я исправил проблему с помощью удаления папки симулятора.

Шаги:

Щелкните правой кнопкой мыши по окну "Finder" , выберите "Перейти в папку"

Вставить "~/Library/Поддержка приложений/Симулятор iPhone/"

Это откроет папку iPhone Simulator, содержащую симуляторы, используемые при выполнении.

Теперь удалить папку 7.x.

enter image description here

Ответ 4

Сегодня такая же проблема. В моем случае сообщение об ошибке ERROR: unable to get the receiver data from the DB не было разрешено путем очистки приложения от симулятора/устройства. Когда-то запускалось приложение, а ошибка снова сообщалась. Также он регистрировался каждый раз, когда я звонил [NSURLSession dataTaskWithRequest:...].

Обнаружено, что это связано с кешированием ответов. Установка политики для игнорирования локального кеша исключает регистрацию ошибок:

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration  defaultSessionConfiguration];
defaultConfigObject.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

NSURLSession *session = [NSURLSession sessionWithConfiguration: defaultConfigObject
                                                          delegate: nil
                                                     delegateQueue: [NSOperationQueue mainQueue]];

NSURLSessionDataTask * dataTask = [session dataTaskWithRequest:urlRequest completionHandler:completion];
[dataTask resume];

Примечание. Сессия должна быть недействительной, если она больше не нужна, в противном случае произойдет утечка памяти.

Ответ 5

Я тоже столкнулся с аналогичной проблемой.

В том числе вышеприведенное предложение я также проигнорировал кеш в моем запросе по почте

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

и проблема не появилась для меня...

Ответ 6

Мне было легче исправить:

Просто удалил приложение из симулятора (как и с телефона - не нужно было удалять несколько папок). Исправлена ​​проблема.

Ответ 7

Удаление полученных данных решило это для меня.

Окно > Организатоp > Проекты

Выберите свой проект, удалите его рядом с производными данными.