0

ご存知のように、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 を使用しているときに、元に戻す/やり直しのサポートを追加する正しい方法を誰でもアドバイスできますか?

4

1 に答える 1

3

MR_context で新しいコンテキストを作成するため、次のコードは機能しません。この新しいコンテキストは、ステートメントの後に割り当て解除されます。

[[NSManagedObjectContext MR_context] setUndoManager:undo];

デフォルトコンテキストのアンドゥマネージャを設定したい

[[NSManagedObjectContext MR_defaultContext] setUndoManager:undo];
于 2013-06-07T08:58:22.710 に答える