standardUserDefaults有什么用?

时间:2011-10-15 09:15:37

标签: iphone xcode nsuserdefaults

我是iphone编程的新手。请解释一下这段代码。那是使用standardUserDefaults吗?这段代码将如何运作?

-(void)load
  {
DLog("Load Configuration");

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

bool savedDefaults = [defaults boolForKey:kKeySavedDefaults];
if (savedDefaults)
{
    columns = [defaults integerForKey:kKeyColumns];
    if (columns == 0) columns = kColumnsDefault;

    rows = [defaults integerForKey:kKeyRows];
    if (rows == 0) rows = kRowsDefault;

    photoType = [defaults integerForKey:kKeylastPhotoType];
    photoEnabled = [defaults boolForKey:kKeyPhotoEnabled];
    numbersEnabled = [defaults boolForKey:kKeyNumbersEnabled];
    soundEnabled = [defaults boolForKey:kKeySoundEnabled];
}
else
{
    columns = kColumnsDefault;
    rows = kRowsDefault;
    photoType = klastPhotoTypeDefault;
    photoEnabled = kPhotoEnabledDefault;
    numbersEnabled = kNumbersEnabledDefault;
    soundEnabled = kSoundEnabledDefault;
}
}
-(void)save
    {
    DLog("Save Configuration");
    BOOL restart = NO;

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if ([defaults integerForKey:kKeyColumns] != columns) { restart = YES; }
    if ([defaults integerForKey:kKeyRows] != rows) { restart = YES; }

    [defaults setBool:YES forKey:kKeySavedDefaults];
    [defaults setInteger:columns forKey:kKeyColumns];
    [defaults setInteger:rows forKey:kKeyRows];
    [defaults setInteger:photoType forKey:kKeylastPhotoType];
    [defaults setBool:photoEnabled forKey:kKeyPhotoEnabled];
    [defaults setBool:numbersEnabled forKey:kKeyNumbersEnabled];
    [defaults setBool:soundEnabled forKey:kKeySoundEnabled];
    [defaults synchronize];

     [board configChanged:restart];
 }

2 个答案:

答案 0 :(得分:3)

用户默认值用于存储很少的配置参数。

来自documentation

  

NSUserDefaults类为其提供编程接口   与默认系统交互。默认系统允许   应用程序以自定义其行为以匹配用户的首选项。   例如,您可以允许用户确定哪些单位   测量您的应用程序显示或文档的频率   自动保存。应用程序通过分配记录此类首选项   值为用户默认数据库中的一组参数。该   参数被称为默认值,因为它们是常用的   确定应用程序在启动时的默认状态或其行为方式   默认情况下。

答案 1 :(得分:0)

如果你想存储一些少量的数据,如用户名,密码......使用这些概念,你可以存储值