Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
BohdanSavych
1 / 1 / 0
Регистрация: 25.12.2013
Сообщений: 44
#1

Как реализировать паттерн Memento? - Objective-C

01.12.2015, 17:54. Просмотров 284. Ответов 1

Хочу реализировать паттерн memento .Моя проблема заключается в тому ,что я хочу сохранить состояние игры даже когда юзер закрыл игру . По-сути мне нужно как-то сохранить Объект _deck Немного погуглив я сделал так
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
- (void)saveCurrentState
{
    [[NSUserDefaults standardUserDefaults] setObject:_deck forKey:@"currentDeck"];
    NSLog(@"save");
}
 
- (void)loadPreviousState
{
    _deck = [[NSUserDefaults standardUserDefaults] objectForKey:@"currentDeck"];
    [self updateCardWrapForAllCards];
    NSLog(@"load");
}
создал notification
Objective-C
1
2
 [[NSNotificationCenter defaultCenter] addObserver:self
                                              selector:@selector(saveCurrentState) name:UIApplicationDidEnterBackgroundNotification object:nil];
ну вот а теперь когда ухожу в бэк граунд то програма падает.Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LeninRedStar
5 / 5 / 4
Регистрация: 22.11.2015
Сообщений: 21
02.12.2015, 18:13     Как реализировать паттерн Memento? #2
объект _deck должен удовлетворять NSCoding чтобы иметь возможность быть сохраненным (креш из-за этого).

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

Я бы лучше сохранял в отдельный файл, через сериализацию.
Yandex
Объявления
02.12.2015, 18:13     Как реализировать паттерн Memento?
Ответ Создать тему
Опции темы

Текущее время: 08:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru