Skip to content

Instantly share code, notes, and snippets.

@semireg
Created February 26, 2014 14:19
Show Gist options
  • Save semireg/9230243 to your computer and use it in GitHub Desktop.
Save semireg/9230243 to your computer and use it in GitHub Desktop.
- (IBAction)nextPerformedTrack:(UIBarButtonItem *)sender {
NSManagedObjectID __block *nextPerformedTrackID = nil;
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
PerformedTrack *currentPerformedTrack = [self currentPerformedTrack];
PerformedTrack *nextPerformedTrack = [currentPerformedTrack nextPerformedTrack];
if(!nextPerformedTrack)
{
Track *nextTrack = [[Track MR_findByAttribute:@"order"
withValue:[currentPerformedTrack.workout numberForNextOrderedPerformedTrack]
inContext:localContext] firstObject];
if(!nextTrack)
return;
nextPerformedTrack = [PerformedTrack MR_createInContext:localContext];
nextPerformedTrack.workout = currentPerformedTrack.workout;
WeightSet *aWeightSet = [WeightSet MR_createInContext:localContext];
aWeightSet.kg1 = [currentPerformedTrack.weightSet.kg1 copy];
aWeightSet.kg2point5 = [currentPerformedTrack.weightSet.kg2point5 copy];
aWeightSet.kg5 = [currentPerformedTrack.weightSet.kg5 copy];
aWeightSet.kg10 = [currentPerformedTrack.weightSet.kg10 copy];
aWeightSet.kg20 = [currentPerformedTrack.weightSet.kg20 copy];
nextPerformedTrack.weightSet = aWeightSet;
nextPerformedTrack.track = nextTrack;
}
nextPerformedTrackID = nextPerformedTrack.objectID;
}completion:^(BOOL success, NSError *error) {
if(success)
{
DDLogVerbose(@"%s - save OK", __PRETTY_FUNCTION__);
self.selectedObjectID = nextPerformedTrackID;
[self updateUI];
}
else if(!error)
{
DDLogVerbose(@"%s - nothing to save", __PRETTY_FUNCTION__);
}
else
{
[NSException raise:@"Core Data Error" format:@"error:%@", error];
}
}];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment