2015-05-05 30 views
0

我使用MagicalRecordsaveWithBlock:方法:MagicalRecord saveWithBlock - 如何取消操作

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { 
    // some work 
    // ... 
    // -> ups! I changed my mind, I don't want to save! 
}]; 

如果我想取消該塊內的保存操作,我怎麼能做到這一點?

E.g.當用戶登錄時,我有一個長時間運行的下載/同步操作 - 如果用戶在此操作過程中註銷,我想取消保存在saveWithBlock:

+0

在該方法的上下文中不可能。你究竟在努力實現什麼? – Rog

回答

0

如果您要執行取消操作,請不要包裝您的變成MagicalRecord saveWithBlock。您可以簡單地使用Context的performBlock API,如果不滿意,可以放棄更改。

[context performBlock:^{ 
    // some work 
    // ... 
    if(timeToCancel) { 
     [context reset]; 
    } else { 
     [context MR_saveToPersistentStoreWithCompletion:nil]; 
    } 
}];