| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- //
- // 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<CNLabeledValue<CNPhoneNumber *> *> *phoneNumbers = [self.phoneNumbers mutableCopy];
- if (phoneNumbers == nil) {
- phoneNumbers = [NSMutableArray array];
- }
- [phoneNumbers addObject:labeled_phone];
-
- self.phoneNumbers = [phoneNumbers copy];
- }
- }
- - (void)ra_deletePhoneNumber:(CNLabeledValue<CNPhoneNumber *> *)phoneNumber {
-
- if (phoneNumber) {
-
- NSMutableArray<CNLabeledValue<CNPhoneNumber *> *> *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<NSString *> *labeledEmail = [[CNLabeledValue alloc] initWithLabel:label value:email];
-
- NSMutableArray<CNLabeledValue<NSString *> *> *emails = [self.emailAddresses mutableCopy];
- if (emails == nil) {
- emails = [NSMutableArray array];
- }
- [emails addObject:labeledEmail];
-
- self.emailAddresses = [emails copy];
- }
- }
- - (void)ra_deleteEmail:(CNLabeledValue<NSString *> *)email {
-
- if (email) {
-
- NSMutableArray<CNLabeledValue<NSString *> *> *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<CNPostalAddress *> *labeledAddr = [[CNLabeledValue alloc] initWithLabel:label value:postalAddress];
-
- NSMutableArray<CNLabeledValue<CNPostalAddress *> *> *addresses = [self.postalAddresses mutableCopy];
- if (addresses == nil) {
- addresses = [NSMutableArray array];
- }
- [addresses addObject:labeledAddr];
-
- self.postalAddresses = [addresses copy];
- }
- }
- - (void)ra_deletePostalAddress:(CNLabeledValue<CNPostalAddress *> *)address {
-
- if (address) {
-
- NSMutableArray<CNLabeledValue<CNPostalAddress *> *> *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<CNSocialProfile *> *labeledSocialProfile = [[CNLabeledValue alloc] initWithLabel:label value:socialProfile];
-
- NSMutableArray<CNLabeledValue<CNSocialProfile *> *> *socialProfiles = [self.socialProfiles mutableCopy];
- if (socialProfiles == nil) {
- socialProfiles = [NSMutableArray array];
- }
- [socialProfiles addObject:labeledSocialProfile];
-
- self.socialProfiles = [socialProfiles copy];
- }
- }
- - (void)ra_deleteSocialProfiles:(CNLabeledValue<CNSocialProfile *> *)socialProfile {
-
- if (socialProfile) {
-
- NSMutableArray<CNLabeledValue<CNSocialProfile *> *> *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<NSString *> *labeledURL = [[CNLabeledValue alloc] initWithLabel:label value:url];
-
- NSMutableArray<CNLabeledValue<NSString *> *> *urlAddresses = [self.urlAddresses mutableCopy];
- if (urlAddresses == nil) {
- urlAddresses = [NSMutableArray array];
- }
- [urlAddresses addObject:labeledURL];
-
- self.urlAddresses = [urlAddresses copy];
- }
- }
- - (void)ra_deleteURL:(CNLabeledValue<NSString *> *)url {
-
- if (url) {
-
- NSMutableArray<CNLabeledValue<NSString *> *> *urlAddresses = [self.urlAddresses mutableCopy];
- if (urlAddresses && urlAddresses.count > 0 && [urlAddresses containsObject:url]) {
-
- [urlAddresses removeObject:url];
-
- self.urlAddresses = [urlAddresses copy];
- }
-
- }
- }
- @end
|