gpt4 book ai didi

ios - 将 NSNumber 保存在 plist 中,不起作用

转载 作者:行者123 更新时间:2023-11-28 18:05:58 25 4
gpt4 key购买 nike

所以我是 Obj-C 的新手(有 C 和 C++ 方面的经验)并且我一直在尝试一些东西。
很简单,我想在用户进步时保存和加载他们的分数和级别。
我有 3 个函数,getFilePathloadDatasavaData

我的 getFilePathloadData 似乎工作正常,但我无法让 saveData 工作。

这是我的代码:

 -(void)saveData
{
NSNumber *updatedScore = [NSNumber numberWithInt:score];
NSNumber *updatedLevel = [NSNumber numberWithInt:level];
NSLog(@"The level im saving is %@",updatedLevel);
NSLog(@"The score im saving is %@",updatedScore);
NSMutableArray *value = [[NSMutableArray alloc]initWithObjects:updatedLevel,updatedScore, nil];
[value writeToFile:[self getFilePath] atomically:YES];
}

-(NSString *)getFilePath
{
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSLog(@"the path is %@",pathArray);
return [[pathArray objectAtIndex:0]stringByAppendingPathComponent:@"saved.plist"];
}

我的 NSLog 消息返回正确的值和用户进度级别,但我无法保存它们。

最佳答案

问题是 getFilePath方法是使用 NSDocumentationDirectory而不是 NSDocumentDirectory .不幸的是,Xcode 的自动完成逻辑很容易选错。


两个进一步的建议:

  1. 您可能应该检查 writeTofile 的结果,也许是这样的:

    NSArray *array1 = @[@1, @5, @3.423];
    BOOL success = [array1 writeToFile:path atomically:YES];
    NSAssert(success, @"%s: write failed", __FUNCTION__);
  2. 就个人而言,因为我经常使用此模式来创建引用 NSDocumentDirectory 中文件路径的字符串目录,我为它创建了一个代码片段,这消除了我输入错误的机会。它为我提供了多行代码的“自动完成”功能。所以,假设我的代码中有以下两行:

    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSString *path = [documentsPath stringByAppendingString:<#filename#>];

    显然,使用任何你想要的代码,但关键是使用 <#filename#> stringByAppendingString 参数的占位符.然后,如 Creating a Custom Code Snippet 中所述文档(或参见 NSHipster 的 discussion on the topic ),您可以将这两行代码拖到代码片段库中并为其取一个好名字(同样重要的是,一个好的快捷方式,我使用“documentsPath ”作为我的快捷方式)。现在,将来,我只需在我的代码中输入“documentsPath”,系统就会提示我输入这两行代码。

    自从我开始使用这个特定的代码片段以来,我从来没有犯过不小心抓取错误值而不是 NSDocumentDirectory 的错误。 .

关于ios - 将 NSNumber 保存在 plist 中,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20323826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com