我想创建一个ABRecordRef数组来存储具有有效生日字段的联系人。
NSMutableArray* bContacts = [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
for( int i = 0 ; i < nPeople ; i++ )
{
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i );
NSDate* birthdayDate = (NSDate*) ABRecordCopyValue(ref, kABPersonBirthdayProperty);
if (birthdayDate != nil){
[bContacts addObject:ref];
}
}
编译器会显示这个警告:
warning: passing argument 1 of 'addObject:' discards qualifiers from pointer target type
我在网上搜索后发现,我需要将ABRecordRef强制转换为ABRecord*才能存储在NSMutableArray中。[bContacts addObject:(ABRecord*) ref];
但是似乎 ABRecord 不是 iOS 框架的一部分。现在我该如何将 ABRecordRef 存储到 NSMutableArray 中?