2012-09-10 2 views
0

알다시피, iOS에서 NSManagedObjectContext는 기본 NSUndoManager 인스턴스와 함께 제공되지 않습니다. 코어 데이터에서 실행 취소/다시 실행을 지원하려면 자체 인스턴스를 인스턴스화해야합니다.NSUndoManager와 함께 MagicalRecord 사용

여기 내 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를 사용하면서 실행 취소/다시 실행 지원을 추가하는 올바른 방법을 조언 할 수 있습니까?

답변

3

MR_context를 사용하여 새 컨텍스트를 만들기 때문에 다음 코드는 작동하지 않습니다. 이 새로운 컨텍스트는 명령문 다음에 할당 해제됩니다.

[[NSManagedObjectContext MR_context] setUndoManager:undo]; 

당신은 기본 컨텍스트

[[NSManagedObjectContext MR_defaultContext] setUndoManager:undo]; 
+0

감사 스테판의 실행 취소 관리자를 설정할! –