【问题标题】:how can i store value in an NSArray using WritetoFile?如何使用 WritetoFile 在 NSArray 中存储值?
【发布时间】:2009-08-06 09:16:22
【问题描述】:

我想使用 NSArray 存储表格中选定单元格的索引,你能帮帮我吗....

【问题讨论】:

  • 如何存储?将其存储在磁盘上的文件中还是存储在内存中?
  • 在磁盘上,当我重新加载该应用程序时,我可以获得该存储值。我想存储所选表格单元格的索引。

标签: iphone objective-c nsuserdefaults property-list


【解决方案1】:

您可以为此使用用户默认值或property list

用户默认设置示例。你有一个可以访问索引的控制器类,它会在启动时加载它,并在更新时将其写入 plist:

如果您有某种控制器类,那么您可以将此代码放入+ (void)initialize,如果 plist 中不存在该变量,它将对其进行初始化:

+ (void)initialize
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSDictionary *appDefaults =
              [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:5]
                                          forKey:@"MyFunnyIndex"];
    [defaults registerDefaults:appDefaults];
}

在您的-(void)awakeFromNib(我假设您正在使用某种控制器类)中加载您最后存储的值:

-(void)awakeFromNib
{
    int index = 
           [[NSUserDefaults standardUserDefaults] integerForKey:@"MyFunnyIndex"];
           [somethingThatNeedsIndex setIndex:index];
    // ...
}

索引更新的地方(或者你想写到plist的地方),我们称之为- (void)updateInterface

- (void)updateInterface
{
    [[NSUserDefaults standardUserDefaults]
                     setObject:[NSNumber numberWithInteger:index]
                        forKey:@"MyFunnyIndex"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

【讨论】:

    【解决方案2】:

    我不知道我是否正确理解了这个问题,但听起来您可以使用属性列表来存储此信息。属性列表非常易于使用,并且在处理少量数据时非常高效。

    阅读“Property List Programming Guide”以获得进一步的解释。里面甚至还有教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多