2016-06-16 7 views
0

iPhoneの連絡先から連絡先を削除している間にクラッシュしました。 次のコード、理由: ' - [CNContact setSnapshot:]:インスタンスに送信された認識できないセレクタ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; 
       } 
      } 
     }]; 

スレッドがここにクラッシュしてしまった[deletestore executeSaveRequest:deleteRequest error:nil];を、実行しています! 私は本当にコードの何が間違っているのか理解していない〜それは簡単なスニペットです。 ご協力いただければ幸いです!

答えて

1

さて、これまでのところ、誰も私の質問に答えません。 私はそれを自分で解決しました。 私はすべての人を連絡先から取得し、その人を繰り返します。 解決策は以下のとおりです。大丈夫です 元のコード変更されたコードの後に​​[deleteRequest deleteContact:(CNMutableContact *)contact]; [deleteRequest deleteContact:(CNMutableContact *)contact mutableCopy];

。しかし、なぜか分からないのですか?

関連する問題