Использование UIButtons для создания / удаления / сохранения NSMutableDictionary в NSUserDefaults - PullRequest
0 голосов
/ 23 мая 2011

Это так просто, что, надеюсь, он получит ответ.Я не мог найти пример для модели после.По сути, я хочу иметь NSMutableDictionary, который очищается / удаляется при вызове представления.Сделайте так, чтобы кнопка добавляла целое число, а отдельная кнопка удаляла целое число.Есть последняя кнопка для сохранения словаря в NSUserDefaults и возврата к предыдущему виду.Нужно ли вызывать словарь в каждом IBAction или viewDidLoad, чтобы сначала создать его, а затем сослаться на него?Пожалуйста, сообщите.

example.h

@interface example : UIViewController {
NSMutableDictionary *exampleDict;
UIButton *B1;
UIButton *B2;
UIButton *Bdone
}

-(IBAction)button1;
-(IBAction)button2;
-(IBAction)done;

@property (retain,nonatomic) IBOutlet UIButton *B1;
@property (retain,nonatomic) IBOutlet UIButton *B2;
@property (retain,nonatomic) IBOutlet UIButton *Bdone;
@property (retain,nonatomic) NSMutableDictionary *exampleDict;
@end

example.m

@implementation example

@synthesize exampleDict;
@synthesize B1;
@synthesize B2;
@synthesize Bdone;
@end

-(IBAction)button1{
[exampleDict setValue:[NSNumber numberWithInt:1] forKey:@"one"];
}
-(IBAction)button2 {
[exampleDict removeObjectforKey: @"one"];
}
-(IBAction)done {
[[NSUserDefaults standardUserDefaults] setObject:exampleDict forKey:@"dictionaryKey"];
[self.parentViewController dismissModalViewControllerAnimated:YES];
}

-(void)viewDidLoad {
}

- (void)dealloc{
[B1 release];
[B2 release];
[Bdone release];
}

1 Ответ

0 голосов
/ 26 мая 2011

Я не вижу никакой инициализации массива.Вы должны инициализировать его, прежде чем отправлять сообщения.Вы также должны будете проверить, существует ли значение в пользовательских значениях по умолчанию.Если он существует, вы должны использовать его, иначе создайте его.

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    exampleDict = [[[NSUserDefaults standardUserDefaults] objectForKey:@"dictionaryKey"] mutableCopy];
    if ( !exampleDict ) {
        exampleDict = [[NSMutableDictionary alloc] init];
    }
}

В дополнение к этому, вы можете захотеть вызвать synchronize по умолчанию и выпустить exampleDict в методе dealloc.

...