3

有什么办法可以禁用自动保存UIManagedDocument吗?

我呈现NSManagedObjects在一个控制器中,用户可以在其中添加和删除它们。但是我只想在用户明确触发保存操作时保存这些更改。否则我想放弃更改。

谢谢你的帮助!

4

2 回答 2

3

你不能在UIManagedDocument子类中重写下面的方法吗

- (void)autosaveWithCompletionHandler:(void (^)(BOOL success))completionHandler

编辑:这里有一些您可能想要包括的其他方法。我使用第一个来确认自动保存是否以及何时发生,第二个用于调试某些错误,无法通过其他方式获得其详细信息。这就是我的子类中的所有内容,因此添加它非常简单。

@implementation YourManagedDocument


- (id)contentsForType:(NSString *)typeName error:(NSError *__autoreleasing *)outError
{
    NSLog(@"Auto-Saving Document");
    return [super contentsForType:typeName error:outError];
}

- (void)handleError:(NSError *)error userInteractionPermitted:(BOOL)userInteractionPermitted
{
    NSLog(@" error: %@", error.localizedDescription);
    NSArray* errors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
    if(errors != nil && errors.count > 0) {
        for (NSError *error in errors) {
            NSLog(@" Error: %@", error.userInfo);
        }
    } else {
        NSLog(@" error.userInfo = %@", error.userInfo);
    }
}
@end
于 2013-11-18T22:06:27.177 回答
0

有关详细信息,请参阅此 SO 答案,但除非您明确保存您的NSManagedObjectContext,否则您可以调用[managedObjectContext rollback]以撤消用户所做的任何更改。

于 2013-11-12T21:33:08.443 回答