Я тестирую SaveState на своем iPad, я следую точно такой же логике на Embarcadero Пример SaveState, но он выдает исключение после сохранения данных.
Однако та же логика, проверенная на симуляторе iOS, работает нормально. Я использую Delphi 10.3.1 с iPad iOS12.2.
Когда я нажимаю кнопку «Домой» после выполнения логики FormSaveState, возникает следующее исключение:
Невозможно создать файл ....... Операция не разрешена
Та же логика, проверенная на симуляторе iOS, работает нормально. Любая идея, почему это произошло и как решить? Спасибо за любую помощь!
использовать
SaveState.StoragePath := System.IOUtils.TPath.GetTempPath
и не
SaveState.StoragePath := System.IOUtils.TPath.GetHomePath;
Я попробовал GetCachePath, и он работает. Это можно использовать для моего приложения, так как хранение данных SaveState в пути к кешу имеет смысл для меня, спасибо!
В поднятом исключении четко указано, в чем проблема. Вы пытаетесь создать новый файл в папке, для которой у вас недостаточно прав. Теперь у меня нет большого опыта работы с iOS, но я предполагаю, что вашему приложению, вероятно, сначала понадобится правильный файл манифеста, чтобы сообщить ОС, что оно намеревается записать данные на диск. Также я почти уверен, что вы несколько ограничены в том, где вы можете записывать свои данные. Боюсь, для получения дополнительной информации по этому вопросу вам придется прочитать некоторую документацию по разработке или рекомендации для операционной системы iOS.