【问题标题】:Generate vCard without image生成没有图像的 vCard
【发布时间】:2013-02-25 18:34:48
【问题描述】:

我目前正在通过此功能从我的地址簿生成 vCard:

ABAddressBookRef ab = ABAddressBookCreateWithOptions(NULL, nil);

NSString *firstName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *lastName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);

if (!lastName) lastName = @"";
if (!firstName) firstName = @"";

NSString *name = [NSString stringWithFormat:@"%@ %@",firstName, lastName];

CFArrayRef contact = ABAddressBookCopyPeopleWithName(ab, (__bridge CFStringRef)(name));    

CFDataRef vcard = (CFDataRef)ABPersonCreateVCardRepresentationWithPeople(contact);

这很好用,但我不希望我的 vCard 中有任何图像。有没有什么方法可以在不获取图片的情况下生成 vCard?

【问题讨论】:

    标签: iphone objective-c vcf-vcard


    【解决方案1】:

    我为此创建了一个解决方法,只需从字符串中删除照片部分,如下所示:

    - (NSString *)removeImageFromVCF:(NSString *)yourString {
    
    NSScanner *theScanner;
    NSString *text = nil;
    
    theScanner = [NSScanner scannerWithString:yourString];
    
    if ([yourString rangeOfString:@"X-SOCIALPROFILE"].location == NSNotFound) {
    
        while ([theScanner isAtEnd] == NO) {
    
            [theScanner scanUpToString:@"PHOTO" intoString:NULL] ;
            [theScanner scanUpToString:@"END:VCARD" intoString:&text] ;
    
            yourString = [yourString stringByReplacingOccurrencesOfString:
                          [NSString stringWithFormat:@"%@", text] withString:@""];
        }
    
    }else{
    
        while ([theScanner isAtEnd] == NO) {
    
            [theScanner scanUpToString:@"PHOTO" intoString:NULL] ;
            [theScanner scanUpToString:@"X-SOCIALPROFILE" intoString:&text] ;
    
            [theScanner scanUpToString:@"END:VCARD" intoString:NULL];
    
            yourString = [yourString stringByReplacingOccurrencesOfString:
                          [NSString stringWithFormat:@"%@", text] withString:@""];
    
    
        }
    
    }
    
    return yourString;
    
    }
    

    希望这对其他人有帮助。

    【讨论】:

    • 如何确定照片后的下一个参数只能是 X-SOCIALPROFILE ?你对此有什么确认吗?
    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多