いいえ、必要なキーはすべて自分で指定する必要があります。リンゴのドキュメントを見てくださいhere ** EDIT:
-(void)getAllContacts
{
//keys with fetching properties
NSArray *keys = @[CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPhoneNumbersKey, CNContactImageDataKey];
NSString *containerId = store.defaultContainerIdentifier;
//to fetch all contacts
NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
//to fetch contacts with matching name
// NSPredicate *predicate = [CNContact predicateForContactsMatchingName:@"vishal"];
NSError *error;
NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
if (error) {
NSLog(@"error fetching contacts %@", error);
} else {
for (CNContact *contact in cnContacts) {
// copy data to my custom Contacts class.
Contact *newContact = [[Contact alloc] init];
newContact.firstName = contact.givenName;
newContact.lastName = contact.familyName;
UIImage *image = [UIImage imageWithData:contact.imageData];
newContact.image = image;
for (CNLabeledValue *label in contact.phoneNumbers) {
NSString *phone = [label.value stringValue];
if ([phone length] > 0) {
[newContact.phones addObject:phone];
}
}
[contacts addObject:newContact];
}
}
}
と述語について私はそれを指定しておく必要があり..is:**この方法を試してみてください?私はすべての連絡先を欲しい。 – commando24
データをフィルタリングする場合は、述語を使用できます。 ( "CNContactGivenNameKey、CNContactFamilyNameKey")これはName "XYZ"に一致する連絡先を返し、キーはCNContactGivenNameKeyとCNContactFamilyNameKeyになります。 –
私はこれを知っていますが、私は何を求めているのは連絡先を "すべて"取り出すことです。 – commando24