iOS 4 Core Data ... какие-нибудь изменения с многозадачностью? - PullRequest
6 голосов
/ 24 июня 2010

У меня есть вопрос, я тщательно прошел и полностью понял учебник для iOS Core Data.

Проблема заключалась в том, что когда я все закодировал и запустил на iOS 4 с многозадачностью ... программа упала, когда я снова открыл ее (убить задачу из-за быстрого переключения приложений и перезапуска)

Потом мне стало любопытно и перекодировать его на iPad (так как он не поддерживает многозадачность), и он отлично работает ...

Я пошел исследовать abit, и некоторые говорят, что приложение для быстрой блокировки переключения приложений похоже на приложение для удаления OSX, и в файле делегата есть метод applicationTerminate, который, возможно, нуждается в некоторых изменениях (на основе комментария).

Может ли кто-нибудь просветить меня по этому вопросу? Есть ли что-то еще, что мне нужно сделать, чтобы основные данные поддерживали функцию многозадачности?

Спасибо!

Обновление

Хорошо, но то, что я не получаю, это то, что ... после того, как я убил приложение ..., быстро переключить приложение, убить его ... и когда я перезапущу приложение ... оно упало ... Нужно ли мне добавить некоторые вещи в методы многозадачности? Он падает, даже если это базовое приложение с 1 кнопкой ... Какие состояния я должен сохранить?

Обновление

Приложение просто зависает само по себе

Обновление

Хорошо, плохо, стараюсь изо всех сил, для приложения с одной кнопкой ... Я вставил туда кнопку, и для каждого щелчка она печатает NSLog и метку. Когда я собираю и запускаю его, он работает нормально, щелкнув по нему, он печатает их нормально. После перехода в фоновый режим и закрытия приложения .. оно отправляет SIGKILL. Затем, когда я перезапускаю приложение, оно больше не печатает в NSLog и не вылетает там 0x98a450f0 <+0000> mov $ 0xffffffe1,% eax 0x98a450f5 <+0005> вызов 0x98a453d8 <_sysenter_trap> 0x98a450fa <+0010> ret 0x98a450fb <+0011> nop

Обновление

Однако, когда я открываю симулятор Iphone и запускаю программу напрямую ... не собирая его из xcode ... Он работает просто отлично, и он смог напечатать это значение. То же самое верно для базовых данных .. если я просто запустите его из симулятора. Убей его и перезапусти, все работает нормально .. Не уверен, что происходит

1 Ответ

1 голос
/ 24 июня 2010

В iOS 4.0 ваше приложение может не получать вызов -applicationWillTerminate. Он может только получить вызов, чтобы уйти в фон и затем быть убитым.

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

Кроме этого, без изменений необходимо сделать.

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

Обновление

Снова Какую аварию вы видите?

Обновление

Замерзает где? Где это останавливается, когда вы смотрите на это в Shark или отладчике? Вы не даете мне много информации, чтобы продолжить здесь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...