Работает нормально в симуляторе iphone, но блокировка в устройстве iphone
Я создал приложение для iphone, которое требует Sqlite для вставки, обновления и удаления записей. Приложение работает нормально в симуляторе iphone.
Все функции работают (вставка, обновление и удаление записи). Но когда я установил его в iphone или ipad. Он всегда блокируется, я искал его, и они сказали, что мне нужно скопировать базу данных в
папку с документами, поскольку вы можете только читать базу данных из пакета приложения. У меня есть код в классе App Delegate, который проверяет, существует ли база данных в папке документа.
Если нет, он скопирует базу данных из комплекта. Я попробовал это в симуляторе iphone, и он действительно скопирует базу данных, если она не существует.
Приложение действительно отлично работает в симуляторе iphone, без ошибок.
Но когда я установил его в устройстве. Он заблокируется, как только я вставлю или обновлю запись. Но это работает, если я открываю табличное представление с записями из БД и удаляю его.
Интересно, в чем проблема моего приложения, когда на устройстве работает выбор и удаление, но блокировка при попытке вставить или обновить запись.
1 ответ
Шаги, которые вы должны попробовать (надеюсь, что один из них поможет вам): 1) Выполните чистую установку приложения на устройстве. Для этого: - выполнить команду clean в xCode (меню - product - clean или cmd + shift + K) - удалить приложение на устройстве - запустить отладку на устройстве.
2) Проверьте, действительно ли вы копируете свою базу данных на устройство в каталоге документов - откройте устройства (menu-window-devices или cmd + shift + 2). Выберите подключенное устройство, затем найдите свое приложение (дважды нажмите на приложение -> вы увидите содержимое каталогов приложений. Вы также можете загрузить это содержимое на свой Mac, чтобы получить больше информации).
3) Убедитесь, что вы используете одну БД с требуемым путем. 4) Проверьте, равен ли размер файла вашей базы данных нулю (иногда это бывает).
Требуется больше деталей, чтобы дать вам лучший ответ