【问题标题】:Save every 5 seconds每 5 秒保存一次
【发布时间】:2014-01-13 17:04:18
【问题描述】:

我有一个表格视图,我可以在其中输入数据并将其保存,这要归功于核心数据。我想知道我必须做什么才能让我的数据每 5 秒“自动保存”一次,而不是单击保存按钮。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.saveButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave 
                                                                    target:self 
                                                                    action:@selector(save)];
}

- (void)save {

    [self setEditing:NO animated:YES];

    for (EditTableCell *cell in [self.tableView visibleCells]) {
        if ([cell isEditable])
            [self.managedObject setValue:[cell value] forKey:[cell key]];
    }

    [self saveManagedObjectContext];
    [self.tableView reloadData];
}

感谢您的帮助!

【问题讨论】:

  • 也许可以使用NSTimer,但这太重了(每 5 秒一次?即使有没有更改?
  • 为什么不保存每次更改后,如果这是所需的功能?

标签: ios core-data save nstimer


【解决方案1】:

正如 cmets 中提到的@staticVoidMan,使用 NSTimer 进行保存。但是,这个频率非常非常快。我至少会打电话给-[NSManagedObjectContext hasChanges],这样你就不会浪费更多的周期了。

【讨论】:

  • 如何调用 [NSManagedObjectContext hasChanges]?
  • 这是一个objective-c方法签名。这意味着有一个名为 -hasChanges 的实例方法,您可以在 NSManagedObjectContext 上调用它,如果您查看文档,它将返回一个 BOOL 告诉您是否有更改。
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
相关资源
最近更新 更多