在完成游戏时存储分数&;在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:请检查我的回答