生成电子名片没有图像
问题描述:
我目前通过此功能,生成从我的地址簿中的电子名片:生成电子名片没有图像
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);
这工作得很好,但我不希望在我的名片任何图像。有没有办法在没有获取图像的情况下生成电子名片?
答
我创建了一种解决方法从字符串作为如此简单地移除照片部分:
- (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?你有什么确认吗? – 2015-07-05 16:58:09