我正在用数百个级别编写这个游戏,但是在我的一个菜单中,我想让用户通过按下它的图标来快速选择任何级别(如跳板,除了代替应用程序,生病等级) 。但是如果关卡已经完成,我还想在图标中显示一个小刻度。
在一个完全不同的文件中,检查哪些(我的300多个级别)已完成的最佳方法是什么?
NSUserDefaults似乎是一种非常笨拙的方式。我在想更像是一个循环?但我不知道该怎么做。 谢谢你的帮助!
答案 0 :(得分:1)
您始终可以在NSArray
中存储NSUserDefaults
个对象。它可以是指示级别是否完成的布尔数组,或者只是已完成级别的列表。
为它创建一个单独的文件对我来说似乎太麻烦了。
您可以在its documentation的NSUserDefaults
中找到可以存储的内容列表。
修改强>
可以像这样创建一个布尔数组(因为bool
是一个基本类型,我们将它包装成NSNumber
)
NSMutableArray *passedLevels = [NSMutableArray array];
[passedLevels addObject:[NSNumber numberWithBool:TRUE]];
if ([[passedLevels objectAtIndex:0] boolValue]) {
// level passed
}
您可以在文档中找到更多操作NSArray
和NSMutableArray
的方法。