保存并加载NSMutableArray失败

时间:2012-04-17 16:29:41

标签: iphone nsmutablearray nsuserdefaults

我很擅长将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。 只有当我从模拟器运行它时,应用程序才会保存它。 我想得到一些帮助PLZ。 谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个

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

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