我很擅长将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。
谢谢!
答案 0 :(得分:0)
试试这个
[[NSUserDefaults standardUserDefaults]setValue:PPLayers forKey:@"pplayers"];
NSArray *NewPPLayers =[[NSArray alloc]initwithArray:[[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"]];