解决方法
如果您在iOS 5或更高版本上运行,则此代码应该做到这一点:
#import <AddressBook/AddressBook.h> // This gets the vCard data from a file in the app bundle called vCard.vcf //NSURL *vCardURL = [[NSBundle bundleForClass:self.class] URLForResource:@"vCard" withExtension:@"vcf"]; //CFDataRef vCardData = (CFDataRef)[NSData dataWithContentsOfURL:vCardURL]; // This version simply uses a string. I'm assuming you'll get that from somewhere else. Nsstring *vCardString = @"vCardDataHere"; // This line converts the string to a CFData object using a simple cast,which doesn't work under ARC CFDataRef vCardData = (CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding]; // If you're using ARC,use this line instead: //CFDataRef vCardData = (__bridge CFDataRef)[vCardString dataUsingEncoding:NSUTF8StringEncoding]; 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(vCardPeople); CFRelease(defaultSource); ABAddressBookSave(book,NULL); CFRelease(book);
确保链接到项目中的AddressBook框架.
原文地址:https://www.jb51.cc/c/113337.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。