使用 NSUserDefaults 保存和加载数据时需要帮助

发布于 2024-12-04 16:01:14 字数 579 浏览 1 评论 0原文

我正在开发一个新的 iPhone 应用程序,目前我正在尝试使用 NSUserDefaults 保存和加载高分。 我的问题是:我到底应该使用什么代码来将我保存的高分分配给一个名为 highscorespointer1 的变量,该变量是一个指向 NSInteger 的指针? 我目前正在使用如下所示的代码:

这里我正在保存高分。请注意,变量 highscore1 的类型为 NSInteger:

-(IBAction)saveData{
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setInteger:highscore1 forKey:@"H1"];
    [defaults synchronize];
           }

这里我正在加载 highscore。但是我收到此警告:“来自不兼容指针类型的赋值”:

highscorepointer1 =  [[NSUserDefaults standardUserDefaults] objectForKey:@"H1"];

I am working on a new iPhone app and at the moment I am trying to save and load highscores using NSUserDefaults.
My question is : what code exactly should I use to assign the highscores I have saved to a variable called highscorespointer1, which is a pointer to an NSInteger?
I am currently using the code shown below:

Here i am saving the highscore. Note that the variable highscore1 is of type NSInteger:

-(IBAction)saveData{
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setInteger:highscore1 forKey:@"H1"];
    [defaults synchronize];
           }

And here i am loading the highscore.But i get this warning: "Assignment from incompatible pointer type":

highscorepointer1 =  [[NSUserDefaults standardUserDefaults] objectForKey:@"H1"];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

姜生凉生 2024-12-11 16:01:14

setInteger:forKey 方法设置一个 int,而不是 int *,这意味着它设置一个值,而不是一个指针。确保您的 highscorepointer1int,而不是 int *。无论如何,保存指向整数的指针是没有意义的,但应该保存实际的整数本身。希望有帮助!

The setInteger:forKey method sets an int, not an int *, meaning it sets a value, and not a pointer. Make sure your highscorepointer1 is an int, not an int *. It doesn't make sense to save the pointer to the integer anyways, but the actual integer itself should be saved. Hope that Helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文