gpt4 book ai didi

iphone - 无法使用 VCard 表示创建人员

转载 作者:行者123 更新时间:2023-12-03 20:31:33 28 4
gpt4 key购买 nike

我正在使用 XCode 4.2 开发一个应用程序,并且尝试使用 initWithVCardRepresentation 和/或 ABPersonCreatePeopleInSourceWithVCardRepresentation 创建 ABPerson,但我找不到工作示例。有人可以帮忙吗?

我得到了 NSString 格式的 VCard...

谢谢

最佳答案

这是一个完整的示例,它运行完美,它基于最新的 iOS 8。

首先您应该检查授权状态并请求访问权限,如果没有,然后保存 vcard,让我们回顾一下下面的代码:

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized){
NSLog(@"Authorized");
[self addVcardsIntoAddressBook:vcard];
} else{
NSLog(@"Not determined");
ABAddressBookRequestAccessWithCompletion(ABAddressBookCreateWithOptions(NULL, nil), ^(bool granted, CFErrorRef error) {
if (!granted){
NSLog(@"Just denied");
return;
}
NSLog(@"Just authorized");
[self addVcardsIntoAddressBook:vcard];
});
}

这是添加电子名片的方法:

- (void)addVcardsIntoAddressBook:(NSData *)vcard {
CFDataRef vCardData = CFDataCreate(NULL, [vcard bytes], [vcard length]);
ABAddressBookRef book = ABAddressBookCreate();
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(book);
CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
ABRecordRef person = CFArrayGetValueAtIndex(vCardPeople, index);
ABAddressBookAddRecord(book, person, NULL);
CFRelease(person);
}
ABAddressBookSave(book, NULL);

}

关于iphone - 无法使用 VCard 表示创建人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837828/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com