iphone - как правильно обрабатывать исключительные ситуации (сигналы?)

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

Я хочу обработать как можно больше ситуаций завершения:
1) Пользователь завершает работу приложения;
2) У устройства заканчивается батарея;
3) Система завершает работу приложения по какой-либо причине (например, из-за выхода из строя). памяти или приложение зависает)
4) Приложение аварийно завершает работу (EXC_BAD_ACCESS или SIGSEGV)

Любая другая исключительная ситуация?
Как лучше всего добиться этого (например, вызывается ли метод applicationWillTerminate в ситуации 2)?
Можно ли выполнить очистку в обработчике сигнала (включая вызовы инфраструктуры безопасности iPhone)?

С уважением


person pmilosev    schedule 17.05.2010    source источник
comment
Ваши конфиденциальные данные записываются в постоянное хранилище? Есть ли способ просто создать его в памяти? При использовании SQLite он поддерживает базы данных в памяти.   -  person NG.    schedule 17.05.2010
comment
Нет, мои данные хранятся в связке ключей :) Однако я работаю над приложением электронного банкинга, и мой клиент хочет, чтобы я вручную зашифровал все данные (включая ключи) перед их сохранением в связке ключей. Поскольку это не поддерживается SDK, я должен сделать что-то вроде взлома в отношении ключей и подписи данных (см. Мой предыдущий пост здесь: stackoverflow.com/questions/2826090/). Поэтому я сохраняю расшифрованную версию ключей в цепочке для ключей в течение всего срока службы приложения, чтобы иметь возможность подписывать, а затем при завершении приложения я хотел бы удалить ее.   -  person pmilosev    schedule 17.05.2010


Ответы (1)


Это своевременное сообщение поможет вам с 4) начать с .

Вы знаете, когда ваше приложение будет завершено из делегата вашего приложения, и вы можете прослушивать уведомления об изменениях батареи, см. UIDevice.

person petert    schedule 26.05.2010
comment
спасибо, что этот шов как хороший урок о том, что я собирался делать. - person pmilosev; 02.06.2010