// // CNMutableContact+RAContact.m // ContactDemo // // Created by Jack on 2018/12/25. // Copyright © 2018 USAI. All rights reserved. // #import "CNMutableContact+RAContact.h" @implementation CNMutableContact (RAContact) #pragma mark - Phone - (void)ra_addPhoneNumber:(NSString *)phoneNumber withLabel:(NSString *)label { if (phoneNumber) { if (!label) { label = CNLabelHome; } CNPhoneNumber *phone = [CNPhoneNumber phoneNumberWithStringValue:phoneNumber]; CNLabeledValue *labeled_phone = [[CNLabeledValue alloc] initWithLabel:label value:phone]; NSMutableArray *> *phoneNumbers = [self.phoneNumbers mutableCopy]; if (phoneNumbers == nil) { phoneNumbers = [NSMutableArray array]; } [phoneNumbers addObject:labeled_phone]; self.phoneNumbers = [phoneNumbers copy]; } } - (void)ra_deletePhoneNumber:(CNLabeledValue *)phoneNumber { if (phoneNumber) { NSMutableArray *> *phoneNumbers = [self.phoneNumbers mutableCopy]; if (phoneNumbers && phoneNumbers.count > 0 && [phoneNumbers containsObject:phoneNumber]) { [phoneNumbers removeObject:phoneNumber]; self.phoneNumbers = [phoneNumbers copy]; } } } #pragma mark - Email - (void)ra_addEmail:(NSString *)email withLabel:(NSString *)label { if (email) { if (!label) { label = CNLabelHome; } CNLabeledValue *labeledEmail = [[CNLabeledValue alloc] initWithLabel:label value:email]; NSMutableArray *> *emails = [self.emailAddresses mutableCopy]; if (emails == nil) { emails = [NSMutableArray array]; } [emails addObject:labeledEmail]; self.emailAddresses = [emails copy]; } } - (void)ra_deleteEmail:(CNLabeledValue *)email { if (email) { NSMutableArray *> *emails = [self.emailAddresses mutableCopy]; if (emails && emails.count > 0 && [emails containsObject:email]) { [emails removeObject:email]; self.emailAddresses = [emails copy]; } } } #pragma mark - Postal Address - (void)ra_addPostalAdress:(CNPostalAddress *)postalAddress withLabel:(NSString *)label { if (postalAddress) { if (!label) { label = CNLabelHome; } CNLabeledValue *labeledAddr = [[CNLabeledValue alloc] initWithLabel:label value:postalAddress]; NSMutableArray *> *addresses = [self.postalAddresses mutableCopy]; if (addresses == nil) { addresses = [NSMutableArray array]; } [addresses addObject:labeledAddr]; self.postalAddresses = [addresses copy]; } } - (void)ra_deletePostalAddress:(CNLabeledValue *)address { if (address) { NSMutableArray *> *addresses = [self.emailAddresses mutableCopy]; if (addresses && addresses.count > 0 && [addresses containsObject:address]) { [addresses removeObject:address]; self.postalAddresses = [addresses copy]; } } } #pragma mark - Social Profile - (void)ra_addSocialProfile:(CNSocialProfile *)socialProfile withLabel:(NSString *)label { if (socialProfile) { if (!label) { label = CNLabelHome; } CNLabeledValue *labeledSocialProfile = [[CNLabeledValue alloc] initWithLabel:label value:socialProfile]; NSMutableArray *> *socialProfiles = [self.socialProfiles mutableCopy]; if (socialProfiles == nil) { socialProfiles = [NSMutableArray array]; } [socialProfiles addObject:labeledSocialProfile]; self.socialProfiles = [socialProfiles copy]; } } - (void)ra_deleteSocialProfiles:(CNLabeledValue *)socialProfile { if (socialProfile) { NSMutableArray *> *socialProfiles = [self.socialProfiles mutableCopy]; if (socialProfiles && socialProfiles.count > 0 && [socialProfiles containsObject:socialProfile]) { [socialProfiles removeObject:socialProfile]; self.socialProfiles = [socialProfiles copy]; } } } #pragma mark - URL - (void)ra_addURL:(NSString *)url withLabel:(NSString *)label { if (url) { if (!label) { label = CNLabelHome; } CNLabeledValue *labeledURL = [[CNLabeledValue alloc] initWithLabel:label value:url]; NSMutableArray *> *urlAddresses = [self.urlAddresses mutableCopy]; if (urlAddresses == nil) { urlAddresses = [NSMutableArray array]; } [urlAddresses addObject:labeledURL]; self.urlAddresses = [urlAddresses copy]; } } - (void)ra_deleteURL:(CNLabeledValue *)url { if (url) { NSMutableArray *> *urlAddresses = [self.urlAddresses mutableCopy]; if (urlAddresses && urlAddresses.count > 0 && [urlAddresses containsObject:url]) { [urlAddresses removeObject:url]; self.urlAddresses = [urlAddresses copy]; } } } @end