iphone - NSUserDefaults 设置

标签 iphone ios xcode

我在 viewDidLoad 中设置了一个值,所以它可以是默认设置,所以每当我加载到该 View Controller 时,它都会有一个默认值。

我在这里使用 NSUserDefaults:

- (void)viewDidLoad
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:1 forKey:@"defaultKey"];

    NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];

    if (defaultKey == 1){
    // do something 1
    } else if ( defaultKey == 2){
    // do something 2
    }
}

但我想要的是按下按钮时,例如 button2,

-(IBAction) button2Pressed:(id)sender {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];
}

它会改变它的值(value)。因此,例如,我然后再次加载该 ViewController

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];

将是其下一次加载的设置。

最佳答案

这样做

- (void)viewDidLoad
{


    NSInteger defaultKey = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultKey"];

    if (defaultKey == 1){
    // do something 1
    } else if ( defaultKey == 2){
    // do something 2
    }
   else 
   {
        //for the first time
          NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:1 forKey:@"defaultKey"];
   } 
}

-(IBAction) button2Pressed:(id)sender {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setInteger:2 forKey:@"defaultKey"];
}

关于iphone - NSUserDefaults 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132513/

相关文章:

ios - 在 Storyboard 中的 UITabBarController 中重新排序 View Controller (XCode 4.6)

ios - xcode 4.2 Storyboard标识符

ios - 使用 Core 图像过滤时内存泄漏

ios - 在 UITableView 加载数据之前,MasterViewController 中添加的 View 不可见

iphone - 横向模式仅适用于 iPhone 或 iPad

ios - 如何使用 Core Plot 框架在折线图中添加十字线垂直线?

iphone - 当UISearchbar获得焦点时,UITableView如何 "dim"实际表格?

iphone - 启用自动布局的 iOS 调整 View 大小

ios - 通过 iOS swift 照片框架保存时如何命名照片

iPhone开发——防止泄密