每 5 秒保存一次

Posted

技术标签:

【中文标题】每 5 秒保存一次【英文标题】:Save every 5 seconds 【发布时间】: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 秒一次?即使有没有更改? 为什么不保存每次更改后,如果这是所需的功能? 【参考方案1】:

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

【讨论】:

如何调用 [NSManagedObjectContext hasChanges]? 这是一个objective-c方法签名。这意味着有一个名为 -hasChanges 的实例方法,您可以在 NSManagedObjectContext 上调用它,如果您查看文档,它将返回一个 BOOL 告诉您是否有更改。

以上是关于每 5 秒保存一次的主要内容,如果未能解决你的问题,请参考以下文章

一次一密加密解密算法

每 5 秒调用一次 Lambda 函数

MS Excel - 如何每 5 秒自动刷新一次单元格?

Cron 作业——每 5 秒运行一次

每 5 分钟运行一次 Cron 作业,持续 10 秒

Android - 每 5 秒循环一次部分代码