2016-06-16 8 views
0

Es stürzte, während ich eine von iPhone Kontakte kontaktiert löschte. Der folgende Code,Grund: '- [CNContact setSnapshot:]: unerkannter Selektor gesendet an Instanz 0x7fc84c8491c0'

CNContactStore * contactStore = [[CNContactStore alloc] init]; 
     CNContactFetchRequest * contactRequest = [[CNContactFetchRequest alloc] initWithKeysToFetch:[self contactKeys]]; 
     [contactStore enumerateContactsWithFetchRequest:contactRequest error:&err usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) { 
      if([contact.familyName isEqualToString:contactItem.familyName] && 
       [contact.middleName isEqualToString:contactItem.middleName] && 
       [contact.givenName isEqualToString:contactItem.givenName]) { 

       CNLabeledValue<CNPhoneNumber*>* number1 = [contact.phoneNumbers firstObject]; 
       CNPhoneNumber *phone = number1.value; 
       NSString *number2 = [contactItem.phoneNumbers firstObject]; 
       if ([phone.stringValue isEqualToString:number2]) { 
        CNSaveRequest *deleteRequest = [[CNSaveRequest alloc] init]; 
        [deleteRequest deleteContact:(CNMutableContact *)contact]; 
        CNContactStore *deletestore = [[CNContactStore alloc] init]; 
        [deletestore executeSaveRequest:deleteRequest error:nil]; 
        *stop = YES; 
       } 
      } 
     }]; 

Wenn der Thread hier [deletestore executeSaveRequest:deleteRequest error:nil]; läuft, die abgestürzt bekam! Ich verstehe wirklich nicht, was mit dem Code falsch ist ~ Es ist ein einfaches Snippet. Jede Hilfe wird geschätzt!

Antwort

1

Okay, bis jetzt beantwortet niemand meine Frage. Ich habe es selbst gelöst. Ich bekomme alle Person aus Kontakte und dann die Person iterieren. Die Lösung lautet: Original-Code [deleteRequest deleteContact:(CNMutableContact *)contact]; nach geänderten Code [deleteRequest deleteContact:(CNMutableContact *)contact mutableCopy];

Das ist okay. Aber ich weiß nicht warum?

Verwandte Themen