Ios 无法使用联系人框架创建联系人vcard

Ios 无法使用联系人框架创建联系人vcard,ios,objective-c,cncontact,Ios,Objective C,Cncontact,我正在使用此代码将联系人从ios电话簿导出到.vcf文件。我已将此代码用于此任务。但是vcardString总是返回nil。请帮我解决这个问题 NSMutableArray *contacts=[NSMutableArray alloc] init]; CNContactStore *store = [[CNContactStore alloc] init]; [store requestAccessForEntityType:CNEntityTypeContacts completionHan

我正在使用此代码将联系人从ios电话簿导出到.vcf文件。我已将此代码用于此任务。但是
vcardString
总是返回
nil
。请帮我解决这个问题

NSMutableArray *contacts=[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:@[CNContactIdentifierKey, [CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName]]];

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

    // you can now do something with the list of contacts, for example, to show the names

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

    for (CNContact *contact in contacts) {

        [contactsArray addObject:contact];
        // NSString *string = [formatter stringFromContact:contact];

        //NSLog(@"contact = %@", string);
    }

    //NSError *error;
    NSData *vcardString =[CNContactVCardSerialization dataWithContacts:contactsArray error:&error];

    NSLog(@"vcardString = %@",vcardString);
}];
更改此行:


CNContactFetchRequest*请求=[[CNContactFetchRequest alloc]initWithKeyFetch:@[[CNContactVCardSerialization descriptorForRequiredKeys]]


这将获取创建vCard所需的所有信息。

请阅读并尝试编辑您的问题。使用高质量的问题,您将更快地获得更好的答案。谢谢!什么不起作用?哪一行似乎导致了问题?@Larme我已编辑了我的问题。
dataWithContact中有一个
NSError
参数s:错误:
CNContactVCardSerialization的class方法。检查其值?@Larme:它显示此错误:“将联系人写入vCard(数据)时出现异常:获取联系人时未请求属性”