Как отменить действие выхода (Iphone Dev.)? - PullRequest
1 голос
/ 27 июня 2011

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

Ответы [ 3 ]

0 голосов
/ 27 июня 2011

Предположим, что ваше приложение поддерживает многозадачность (и вы на iOS 4 или выше):

Переопределите метод applicationDidEnterBackground в делегате приложения и сделайте следующее:

- (void)applicationDidEnterBackground:(UIApplication *)application {



bgTask = [ [UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

//do whatever writing you like    


if (bgTask != UIBackgroundTaskInvalid) {
    [[UIApplication sharedApplication] endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;

}

}
0 голосов
/ 27 июня 2011

Начните с Сохранение состояния пользовательского интерфейса вашего приложения на сайте разработчика Apple. Прочтите о методах applicationDidEnterBackground: и связанных с ними методах, таких как applicationWillResignActive и т. Д. При реализации любого из этих методов делегирования приложения следует помнить, что у вас не так много времени, чтобы что-то делать.

Один из способов избежать состояния гонки при попытке записать некоторые данные, когда приложение находится в фоновом режиме или завершается, - это записать их, когда они изменяются во время нормального хода работы вашего приложения. Тогда это всегда правильно "на диске".

0 голосов
/ 27 июня 2011

Реализуйте следующий метод в вашем делегате приложения:

- (void)applicationWillTerminate:(UIApplication *)application
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...