title: Contact is missing some of the required key descriptors in ios
body: <p>I have retrieves all contact by using following method</p>
  
  <pre><code>- (void)getAllContacts:(void(^)(NSArray *array))handler
  {
      CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
  
      if (status == CNAuthorizationStatusDenied || status == CNAuthorizationStatusDenied)
      {
          UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"This app previously was refused permissions to contacts; Please go to settings and grant permission to this app so it can use contacts" preferredStyle:UIAlertControllerStyleAlert];
          [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
          [self presentViewController:alert animated:TRUE completion:nil];
          return;
      }
  
      CNContactStore *store = [[CNContactStore alloc] init];
      [store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
  
          // make sure the user granted us access
          if (!granted)
          {
              dispatch_async(dispatch_get_main_queue(), ^{
                  // user didn't grant access;
                  // so, again, tell user here why app needs permissions in order  to do it's job;
                  // this is dispatched to the main queue because this request could be running on background thread
              });
              return;
          }
  
          // build array of contacts
          NSMutableArray *contacts = [NSMutableArray array];
  
          NSError *fetchError;
          CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:@[CNContactIdentifierKey, CNContactEmailAddressesKey, CNContactBirthdayKey, CNContactImageDataKey, CNContactPhoneNumbersKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]]];
  
          BOOL success = [store enumerateContactsWithFetchRequest:request error:&amp;fetchError usingBlock:^(CNContact *contact, BOOL *stop) {
  
              [contacts addObject:contact];
          }];
  
          if (!success)
          {
              NSLog(@"error = %@", fetchError);
              return;
          }
          handler((NSArray *)contacts);
     }];
  </code></pre>
  
  <p>}</p>
  
  <p>And contacts are listed in tableview. Now I am trying to select particular contact from ``,</p>
  
  <pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      CNContact *contact = [arrContacts objectAtIndex:indexPath.row];
      NSArray *keys = @[CNContactIdentifierKey, CNContactEmailAddressesKey, CNContactBirthdayKey, CNContactImageDataKey, CNContactPhoneNumbersKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]];
      CNContactViewController *contactController = [CNContactViewController viewControllerForContact:contact];
      contactController.delegate = self;
      contactController.allowsEditing = YES;
      contactController.allowsActions = YES;
      contactController.displayedPropertyKeys = keys;
      [self.navigationController pushViewController:contactController animated:TRUE];
  }
  </code></pre>
  
  <p>But it says</p>
  
  <blockquote>
    <p>Contact 0x7fc732654530 is missing some of the required key descriptors</p>
  </blockquote>
  
  <p>Please help me to solve it, if anyone know. Thanks.</p>