我正在尝试在本地通讯簿中创建一个组。
我已经成功地实现了代码,它在32位架构上的iOS6和iOS7上工作得很好。
然而,同样的代码在64位iPad 4上不会做任何事情。有人经历过这样的事情吗?
下面是创建群组的代码:
CFErrorRef error = NULL;
ABRecordRef newGroup = ABGroupCreate();
bool isSucces;
NSLog(@"newGroup: %@", newGroup);
isSucces = ABRecordSetValue(newGroup,
kABGroupNameProperty,
@"KONTAKT",
&error);
if(!isSucces) NSLog(@"error at setting group value");
isSucces = ABAddressBookAddRecord(addressBook, newGroup, &error);
if(!isSucces)NSLog(@"error at adding record to addressbook");
ABAddressBookSave(addressBook, &error);发布于 2014-02-20 21:49:52
尝尝这个
bool foundIt = NO;
CFArrayRef mygroups = ABAddressBookCopyArrayOfAllGroups(addrBook);
CFIndex numGroups = CFArrayGetCount(mygroups);
for(CFIndex idx=0; idx<numGroups; ++idx) {
ABRecordRef mygroupItem = CFArrayGetValueAtIndex(mygroups, idx);
CFStringRef name = (CFStringRef)ABRecordCopyValue(mygroupItem, kABGroupNameProperty);
bool isMatch = [newName isEqualToString:(NSString *)name];
CFRelease(name);
if(isMatch) {
groupNum = [NSNumber numberWithInt:ABRecordGetRecordID(mygroupItem)];
[self setObject:groupNum forKey:kGroupID];
foundIt = YES;
break;
}
}
CFRelease(mygroups);
if(!foundIt) {
ABRecordRef mygroupItem = ABGroupCreate();
ABRecordSetValue(mygroupItem, kABGroupNameProperty, (CFStringRef *)newName, &error);
if(!error) {
ABAddressBookAddRecord (addrBook, mygroupItem, &error);
ABAddressBookSave(addrBook, &error);
groupNum = [NSNumber numberWithInt:ABRecordGetRecordID(groupItem)];
[self setObject:groupNum forKey:kGroupID];
}
CFRelease(mygroupItem);
}https://stackoverflow.com/questions/21909573
复制相似问题