每 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 秒保存一次的主要内容,如果未能解决你的问题,请参考以下文章