2012-04-17 1 views
0

Я отчасти новый для экономии NSMutableArray До NSUerdefaults.сохранить и загрузить NSMutableArray Fails

здесь является декларация Ивар: .h файл

@interface GameData : NSObject { 

NSMutableArray *PPLayers; 

}

@property (nonatomic,retain) NSMutableArray *PPLayers; 

.m файл

@synthesize PPLayers;

вот как я добавить объект в массив и его сохранения по умолчанию:

-(void)AddObject:(NSString *) object ToArray:(NSMutableArray*)array{ 
if (array == PShoes) { 
    [PShoes addObject:object]; 
    NSLog(@"Object : %@",object); 
    [[NSUserDefaults standardUserDefaults]setValue:PPLayers forKey:@"pplayers"]; 
    [[NSUserDefaults standardUserDefaults]synchronize]; 
    NSLog(@"%@",PPLayers); 
} 

иногда работает, а иногда происходит сбой приложения.

и вот как я пытаюсь загрузить массив:

PPLayers = [[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"]; 

что-то здесь не так, но я не знаю, что. иногда, когда я его загружаю, он дает мне null. приложение сохраняет его только тогда, когда я запускаю его из симулятора. Я хотел бы получить помощь plz. спасибо!

ответ

0

попробовать это

  [[NSUserDefaults standardUserDefaults]setValue:PPLayers forKey:@"pplayers"]; 

     NSArray *NewPPLayers =[[NSArray alloc]initwithArray:[[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"]];