【发布时间】:2015-01-13 08:50:03
【问题描述】:
我正在尝试从一个循环中断到第一个循环(所以第一个循环可以继续),但如果我从[self saveContext] 点中断,我会更上一层,对吧?
- (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);
}
}
【问题讨论】:
标签: ios objective-c loops for-loop break