gpt4 book ai didi

iphone - 在 Objective-C 中创建 vCard?

转载 作者:行者123 更新时间:2023-12-03 20:07:42 24 4
gpt4 key购买 nike

我想在 objective-c 中创建 vCard ( http://en.wikipedia.org/wiki/VCard )?

你能给我举个例子来说明如何做到这一点吗?还有一个问题我可以在短信中附加电子名片吗?

谢谢

最佳答案

// Create vcd file all contacts
- (void)CreateVCardfile {
NSMutableArray *contactsArray=[[NSMutableArray alloc] init];
CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error)
{

if (!granted)
{
dispatch_async(dispatch_get_main_queue(), ^{
});
return;
}
NSMutableArray *contacts = [NSMutableArray array];
NSError *fetchError;
CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:@[[CNContactVCardSerialization descriptorForRequiredKeys], [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]]];

BOOL success = [store enumerateContactsWithFetchRequest:request error:&fetchError usingBlock:^(CNContact *contact, BOOL *stop) {
[contacts addObject:contact];
}];

if (!success)
{
NSLog(@"error = %@", fetchError);
}



CNContactFormatter *formatter = [[CNContactFormatter alloc] init];

for (CNContact *contact in contacts)
{
[contactsArray addObject:contact];
}

NSData *vcardString =[CNContactVCardSerialization dataWithContacts:contactsArray error:&error];
NSString* vcardStr = [[NSString alloc] initWithData:vcardString encoding:NSUTF8StringEncoding];
NSLog(@"vcardStr = %@",vcardStr);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *folderPath = [paths objectAtIndex:0];

NSString *filePath = [folderPath stringByAppendingPathComponent:@"Contacts.vcf"];
[vcardStr writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
NSArray *objectsToShare = @[fileUrl];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];
[self presentViewController:controller animated:YES completion:nil];

}];

}

关于iphone - 在 Objective-C 中创建 vCard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224463/

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