在NSUser中保存偏好设置默认为稍后调用
问题描述:
一直致力于一些代码优化,并意识到如果我的应用程序具有偏好系统,它将非常有用。在NSUser中保存偏好设置默认为稍后调用
现在,我的代码如何工作。
基于存储在NSUserDefaults的
的整数的方法,例如运行
if ([[NSUserDefaults standardUserDefaults] integerForKey:@"scifi1"] == 040){
[self spaceDown];
}
else if ([[NSUserDefaults standardUserDefaults] integerForKey:@"scifi1"] == 10040){
[self ctrldown];
[self spaceDown];
}
现在我想做的是,当我离开的看法(通过特定的按钮)是转储@“scifi1”到一个新的首选项的值,例如说 - 一个整数名为@“savedscifi1 “
现在我知道如何整数保存到NSUserDefaults的,
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:VALUEHERE forKey:@"savedscifi1"];
[userDefaults synchronize];
但是 - 我不知道我怎么能在scifi1的,而不是(在这种情况下)‘VALUEHERE’的值substiture - 可以任何人都可以帮忙吗?我觉得这很简单,但我忍不住觉得我有点厚...睡眠不足,接近最后期限!我知道我不能只打电话@“scifi1”,但超越那个....?
答
NSInteger value = [[NSUserDefaults standardUserDefaults] integerForKey: ...];
[[NSUserDefaults standardUserDefaults] setInteger: value forKey: ...];
'040'是一个八进制数。它不等于'40'。 – 2011-04-27 12:12:52
@Jonathan ascii for space is 0x20 == 32 == 040所以代码看起来正确 – 2011-04-27 12:42:53
实际上在这种情况下它并不重要 - 这些都是内部使用的数字 - 不一定与ASCII数字有关(尽管有些是,当如果我需要创造性的东西,我开始有其他的东西 - 但是很好的地方;)虽然这里对我的问题没有影响:) – David26th 2011-04-27 12:54:55