我想创建具有打开和关闭级别的游戏。 我有10个级别。在每个级别是10个底层。 1级是开放的,其他是接近的。在1级中,它打开9个底层。如果我赢得任何7个低位,则打开10个低于平均水平。如果我赢得10个低于标准,则打开第二级,9个低级别。
如何使用NSUserDefaults standardUserDefaults进行制作?
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"openLevels"];
dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"level 1-1", @"open",
@"level 1-2", @"closed",
@"level 1-3", @"closed",
@"level 1-4", @"closed",
@"level 1-5", @"closed",
@"level 1-6", @"closed",
@"level 1-7", @"closed",
@"level 1-8", @"closed",
@"level 1-9", @"closed",
@"level 1-10", @"closed",nil];
NSString *customerDict ;
[[NSUserDefaults standardUserDefaults] setValue:customerDict forKey:@"openLevels"];
if ([[dict valueForKey:@"level 1-1"] isEqualToString:@"open" ]){
}else{
NSLog(@"not open");
}
答案 0 :(得分:0)
对于每个子级别,您希望在启动应用程序时知道它是打开还是关闭。为此,您可以为每个子级别创建一个字典(级别1子级别1级别为1-1),值为打开或关闭:
dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"level 1-1", @"open",
@"level 1-2", @"open",
@"level 1-3", @"closed",
@"level 1-4", @"closed",
.....
@"level 10-10", @"closed", nil];
然后将其保存到NSUserDefaults:
[[NSUserDefaults standardUserDefaults] setValue:customerDict forKey:@"openLevels"];
启动应用程序时,您会阅读已保存的词典,以了解打开的内容和已关闭的内容:
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"openLevels"];
然后,当您创建关卡时,您只需检查它是打开还是关闭:
if [dict valueForKey:@"level 1-1"] isEqualToString: @"open" {
//set level 1-1 as open
}
答案 1 :(得分:0)
我假设你已经在课堂上有这个 - 所以你可以存档该对象并取消存档。这是一篇有基本实现的博客文章
http://sam.roon.io/archiving-objective-c-objects-with-nscoding
您可以将数据存储在NSUserdefaults中,无需任何花哨的东西。值得注意的是,您只能归档符合NSCoding的对象
如果你需要存档int或float然后将它们加到@(1),@(1.0)使用NSValue表示结构;)http://nshipster.com/nsvalue/
享受