If saving a MOC when it's a NSConfinementConcurrencyType, don't use performBlock* on save

This commit is contained in:
Saul Mora
2012-12-18 18:46:45 -07:00
parent 16df3cc0bb
commit 9c35f31a39
2 changed files with 11 additions and 4 deletions

View File

@@ -11,7 +11,7 @@
#import "MagicalRecord.h"
#import "MagicalRecord+iCloud.h"
static void const * kMagicalRecordNotifiesMainContextAssociatedValueKey = @"kMagicalRecordNotifiesMainContextOnSave";
//static void const * kMagicalRecordNotifiesMainContextAssociatedValueKey = @"kMagicalRecordNotifiesMainContextOnSave";
NSString * const kMagicalRecordDidMergeChangesFromiCloudNotification = @"kMagicalRecordDidMergeChangesFromiCloudNotification";

View File

@@ -53,7 +53,7 @@
MRLog(@"→ Save Parents? %@", @(saveParentContexts));
MRLog(@"→ Save Synchronously? %@", @(syncSave));
id saveBlock = ^{
void (^saveBlock)(void) = ^{
NSError *error = nil;
BOOL saved = NO;
@@ -94,9 +94,16 @@
}
};
if (YES == syncSave) {
if ([self concurrencyType] == NSConfinementConcurrencyType)
{
saveBlock();
}
else if (YES == syncSave)
{
[self performBlockAndWait:saveBlock];
} else {
}
else
{
[self performBlock:saveBlock];
}
}