【问题标题】:Using MagicalRecord with NSUndoManager将 MagicalRecord 与 NSUndoManager 一起使用
【发布时间】:2012-09-02 21:31:30
【问题描述】:

我们知道,在 iOS 上,NSManagedObjectContext 没有默认的 NSUndoManager 实例。如果我们想在 Core Data 中支持撤销/重做,我们需要实例化我们自己的。

这是我在 appDelegate 中写的:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[MagicalRecord setupAutoMigratingCoreDataStack];
NSUndoManager *undo = [[NSUndoManager alloc] init];
[[NSManagedObjectContext MR_context] setUndoManager:undo];

return YES;
}

但后来,当我观察时:

NSLog(@"%p", [NSManagedObjectContext MR_context].undoManager);

结果总是什么都没有,这意味着 undoManager 从未被实例化。任何人都可以建议在使用 MagicalRecord 时添加撤消/重做支持的正确方法。

【问题讨论】:

    标签: ios core-data magicalrecord


    【解决方案1】:

    以下代码不起作用,因为您使用 MR_context 创建了一个新上下文。这个新的上下文将在语句之后被释放。

    [[NSManagedObjectContext MR_context] setUndoManager:undo];
    

    您要设置默认上下文的撤消管理器

    [[NSManagedObjectContext MR_defaultContext] setUndoManager:undo];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      相关资源
      最近更新 更多