将分数和当前日期添加到plist

时间:2014-12-07 13:20:56

标签: ios objective-c plist

我必须在plist中保留游戏的得分和当前日期。我创建了一个包含两个数组的字典:

 - (void)viewDidLoad
{
    [super viewDidLoad];

    dateArray=[[NSMutableArray alloc]init];
    scoreArray=[[NSMutableArray alloc]init];
    [self.tableView setDelegate:self];
    [self.tableView setDataSource:self];
    [self getDate];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"score" ofType:@"plist"];
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    int lastItemIndex = scoreArray.count;
    [scoreArray insertObject:[dict objectForKey:@"scoreElements"] atIndex:lastItemIndex];
}

-(IBAction) saveData
{
    NSString *plistPath =[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Score.plist"];
    NSMutableArray* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];

    [plistDict setValue:self.scoreLabel.text forKey:@"scoreElements"];
    [plistDict writeToFile:plistPath atomically: YES];
}

此代码仅适用于上一场比赛,但我想用旧分数填充tableView。我该怎么办?

2 个答案:

答案 0 :(得分:0)

代替使用

[scoreArray insertObject:[dict objectForKey:@"scoreElements"] atIndex:lastItemIndex];

你为什么不使用

[scoreArray addObject: dict["scoreElements"];

另外,当您使用下面的代码进行保存时,它将始终将覆盖旧值的新值设置为“ scoreElements”。...因此,您也必须使用数组。

[plistDict setValue:self.scoreLabel.text forKey:@"scoreElements"];

答案 1 :(得分:-1)

您可以使用NSUserDefaults来存储内容并在以后检索它。 在Apple查看有关此课程的参考资料:

nsuserdefault apple