0

我对保存NSMutableArray到有点陌生NSUerdefaults

这是 iVar 的声明:.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。该应用程序仅在我从模拟器运行时才保存。我想得到一些帮助。谢谢!

4

1 回答 1

0

尝试这个

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

         NSArray *NewPPLayers =[[NSArray alloc]initwithArray:[[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"]];
于 2012-04-17T17:00:15.010 回答