Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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中按HighScore按钮获取数据_Iphone - Fatal编程技术网

在完成游戏时存储分数&;在iphone中按HighScore按钮获取数据

在完成游戏时存储分数&;在iphone中按HighScore按钮获取数据,iphone,Iphone,我已经做了这个代码来存储分数 但这只是给了我最后一次添加的分数,而不是每次都在新索引上存储数据 -(IBAction)btnSaveScore:(id)sender { if(!dictWinData) dictWinData = [[NSMutableDictionary alloc] init]; array = [NSMutableArray arrayWithObjects:txt_EnterName.text,

我已经做了这个代码来存储分数

但这只是给了我最后一次添加的分数,而不是每次都在新索引上存储数据

-(IBAction)btnSaveScore:(id)sender
{
    if(!dictWinData)
        dictWinData = [[NSMutableDictionary alloc] init];

    array = [NSMutableArray arrayWithObjects:txt_EnterName.text,
                                             [NSString stringWithFormat:@"%i",iTap], nil];

    int increment = 0;

    NSLog(@"array data is:--> %@",array);

    for (int intWinData = 1; intWinData < [array count]; intWinData++)
    {
        [dictWinData setObject:array forKey:[NSString stringWithFormat:@"NameScore%d",increment]];
        increment++;
    }
}
-(iAction)btnSaveScore:(id)发送方
{
if(!dictWinData)
dictWinData=[[NSMutableDictionary alloc]init];
array=[NSMutableArray arrayWithObjects:txt\u EnterName.text,
[NSString stringWithFormat:@“%i”,iTap],无];
整数增量=0;
NSLog(@“数组数据为:-->%@”,数组);
用于(int intWinData=1;intWinData<[数组计数];intWinData++)
{
[dictWinData setObject:array forKey:[NSString stringWithFormat:@“名称核心%d”,增量]];
增量++;
}
}
如果我的代码中有任何错误,请让我来指导

是否有其他方法来存储数据

NSUserDefaults
是否有助于存储和显示数据

如何使用
NSUserDefaults
存储和检索数据


谢谢。

问题在于这一行:

int increment = 0;
每次按下保存按钮时,
增量
将被初始化为零,因此每次为同一键
名称core0
将值添加到字典时。因此,它将重写现有的字典值

您需要将
增量
设置为static,就像
static int increment=0一样
或将其作为全局变量,它将解决此问题

-(IBAction)btnSaveScore:(id)sender
{
    if(!dictWinData)
        dictWinData = [[NSMutableDictionary alloc] init];

    array = [NSMutableArray arrayWithObjects:txt_EnterName.text,
                                             [NSString stringWithFormat:@"%i",iTap], nil];

    static int increment = 0;

    for (int intWinData = 1; intWinData < [array count]; intWinData++)
    {
        [dictWinData setObject:array forKey:[NSString stringWithFormat:@"NameScore%d",increment]];
        increment++;
    }
}
-(iAction)btnSaveScore:(id)发送方
{
if(!dictWinData)
dictWinData=[[NSMutableDictionary alloc]init];
array=[NSMutableArray arrayWithObjects:txt\u EnterName.text,
[NSString stringWithFormat:@“%i”,iTap],无];
静态整数增量=0;
用于(int intWinData=1;intWinData<[数组计数];intWinData++)
{
[dictWinData setObject:array forKey:[NSString stringWithFormat:@“名称核心%d”,增量]];
增量++;
}
}
NSUserDefaults
用于在ios设备的设置窗格中显示应用程序设置。不要将应用程序数据保存在那里。 您可以使用
plist
来存储数据,而不是
NSUserDefaults


请检查此行的问题:

int increment = 0;
每次按下保存按钮时,
增量
将被初始化为零,因此每次为同一键
名称core0
将值添加到字典时。因此,它将重写现有的字典值

您需要将
增量
设置为static,就像
static int increment=0一样
或将其作为全局变量,它将解决此问题

-(IBAction)btnSaveScore:(id)sender
{
    if(!dictWinData)
        dictWinData = [[NSMutableDictionary alloc] init];

    array = [NSMutableArray arrayWithObjects:txt_EnterName.text,
                                             [NSString stringWithFormat:@"%i",iTap], nil];

    static int increment = 0;

    for (int intWinData = 1; intWinData < [array count]; intWinData++)
    {
        [dictWinData setObject:array forKey:[NSString stringWithFormat:@"NameScore%d",increment]];
        increment++;
    }
}
-(iAction)btnSaveScore:(id)发送方
{
if(!dictWinData)
dictWinData=[[NSMutableDictionary alloc]init];
array=[NSMutableArray arrayWithObjects:txt\u EnterName.text,
[NSString stringWithFormat:@“%i”,iTap],无];
静态整数增量=0;
用于(int intWinData=1;intWinData<[数组计数];intWinData++)
{
[dictWinData setObject:array forKey:[NSString stringWithFormat:@“名称核心%d”,增量]];
增量++;
}
}
NSUserDefaults
用于在ios设备的设置窗格中显示应用程序设置。不要将应用程序数据保存在那里。 您可以使用
plist
来存储数据,而不是
NSUserDefaults


请检查

…感谢您的建议,现在它工作正常了…..我正在获取选项卡中的所有记录….但一旦我关闭应用程序并再次播放,分数列表将变为空…@JoePatel:score list变为空,因为您正在内存(数组)中存储它,当应用程序关闭时,它肯定会关闭。您需要使用plist、sqlite或核心数据保存它。我在回答中给出了一个链接,请也检查一下。@JoePatel:请检查我对这个问题的回答……谢谢你的建议,现在它可以正常工作了……我正在获取选项卡中的所有记录……但是一旦我关闭应用程序并再次播放,分数列表就会变空……@JoePatel:score list会变空,因为您正在将其存储在内存(数组)中,当应用程序关闭时,它肯定会停止。您需要使用plist、sqlite或核心数据保存它。我的回答中有一个链接,请检查一下。@JoePatel:请检查我的回答