Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用NSUserDefaults保存和加载数据时需要帮助_Iphone_Objective C_Ios_Loading_Nsuserdefaults - Fatal编程技术网

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

Iphone 使用NSUserDefaults保存和加载数据时需要帮助,iphone,objective-c,ios,loading,nsuserdefaults,Iphone,Objective C,Ios,Loading,Nsuserdefaults,我正在开发一款新的iPhone应用程序,目前我正在尝试使用NSUserDefaults保存和加载高分。 我的问题是:我应该使用什么代码将保存的高分分配给名为highscorespointer1的变量,该变量是指向NSInteger的指针? 我目前使用的代码如下所示: 我在这里保存最高分。请注意,变量highscore1属于NSInteger类型: -(IBAction)saveData{ NSUserDefaults *defaults = [NSUserDefaults stand

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

我在这里保存最高分。请注意,变量highscore1属于NSInteger类型:

-(IBAction)saveData{
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setInteger:highscore1 forKey:@"H1"];
    [defaults synchronize];
           }
在这里,我加载了最高分。但我得到了以下警告:“来自不兼容指针类型的赋值”:


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

并使用
integerworkey:
检索整数,而不是
objectForKey:
。此时,发帖人正试图将指向对象的指针指定给指向文字的指针。非常感谢!我照你说的做了,效果很好。不过我还有一个问题:当我之前将保存的数据分配给指针时,我可以使用这行代码:
if(highscorepointer1==nil){highscore1=0;}
将highscore设置为零,如果这是第一次执行应用程序。现在我将加载的数据直接分配给整数highscore1,是否有类似的方法可以使用?实际上,默认情况下,如果使用
highscore1=[[NSUserDefaults standardUserDefaults]IntegerWorkey:@“H1”],但尚未设置,则
highscore1
将等于
0
highscorepointer1 =  [[NSUserDefaults standardUserDefaults] objectForKey:@"H1"];