2015-08-06 1 views
1

NSFetchedResultControllerDelegate call didChangeObject получает недопустимый тип изменения. Значение равно 0, допустимые значения от 1 до 4 для вставки, удаления, перемещения и обновления соответственно.Неверный тип изменения для NSFetchedResultControllerDelegate вызывает

Я получаю все ожидаемые вызовы делегатов с правильными параметрами. Таким образом, приложение работает нормально. Для каждых 3-5 вызовов я получаю один с типом изменения 0, и мне нужно добавить логику, чтобы игнорировать его, и мне бы этого не хотелось.

Я использую Xcode 7 beta 4, swift 2. Кто-нибудь сталкивался с этим и выяснил причину?

ответ

2

Я столкнулся с тем же, используя Xcode 7 beta 5, запустив приложение на устройстве с iOS 8.4. Кажется, что это ошибка, которая возникает только при запуске приложения на iOS 8 - она ​​вызывает дополнительные вызовы метода NSFetchedResultsControllerDelegate с типом изменения 0 (rawValue). На iOS 9 все должно быть в порядке.

Эта проблема также была mentioned на форумах разработчиков Apple.

Редактировать: Все еще присутствует в семенах ГМ.

Edit2/другое временное решение: Если у вас есть случай .Применять перед .update в контроллере: didChangeObject, попытайтесь переместить .update таким образом, что это первый случай (предложенный here).

+1

Хотя это теоретически может ответить на вопрос, [было бы желательно] (// meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. – NightShadeQueen

+0

Я подвел итог информации, которую я мог найти по этой проблеме (к которой я также столкнулся), ссылка была просто описанием от другого пользователя на форумах разработчиков Apple. Тем не менее, я отредактировал ответ, чтобы быть более ясным. – Rygen

Смежные вопросы