I'm trying to break from a loop to the very first loop (so very first loop can continue), but if I break from the point [self saveContext]
I'll go one level up, right?
- (void)arrangeAllContacts
{
NSArray *messages = [HumanResponse allAcceptedRecordsTextMessages];
__block CoreDataPhotoRecord *photoDetails;
self.addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
/* NSMutableArray *emails = [NSMutableArray new]; */
NSArray *mobiles = [NSArray new];
NSString *name;
if (!self.allContacts) {
NSLog(@"NO ADDRESS BOOK ENTRIES TO SCAN");
return;
}
for (int a=0; a<messages.count; a++) {
photoDetails = (CoreDataPhotoRecord *)messages[a];
for (int i=0; i<self.allContacts.count; i++ ) {
ABRecordRef person = (__bridge ABRecordRef)self.allContacts[i];
/* ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty); */
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
CFIndex phoneNumberCount = ABMultiValueGetCount(phoneNumbers);
for (int k=0; k<phoneNumberCount; k++) {
CFStringRef phoneNumberValue = ABMultiValueCopyValueAtIndex(phoneNumbers, k);
NSString *phoneNumber = (__bridge NSString *)(phoneNumberValue);
phoneNumber = [self getCleanMobile:phoneNumber];
if ([phoneNumber isEqualToString:photoDetails.message.mobile]) {
name = [self nameForPerson:self.selectedPerson];
mobiles = [self numbersForContact:phoneNumbers];
/* emails = [self emailsForContact:emails]; */
[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
photoDetails = [photoDetails MR_inContext:localContext];
photoDetails.message.contactName = name;
photoDetails.message.contactNumber = mobiles;
}];
[self saveContext];
// How to break to first 'for' loop?
}
}
}
}
if (self.addressBook != nil) {
CFRelease(self.addressBook);
}
}