代码之家  ›  专栏  ›  技术社区  ›  phil swenson

在iPhone联系人中添加电话号码-但不能替换!

  •  1
  • phil swenson  · 技术社区  · 14 年前

    我试图复制iPhone的行为,当你在一个文本字段中点击并保持电话号码链接时,你会看到一个菜单“创建新联系人”和“添加到现有联系人”。除了一件事,我还有这个工作要做。在“添加到现有的”Apple实现中,如果已经有家庭联系人,它只会添加另一个联系人。它不能代替它。所以你可以有多个家庭电话号码。

    在我的实现中,它取代了它。那么我该如何添加一个没有破坏性的电话号码呢?

    这是我的代码:

    +(void)updatePhone:(ABRecordRef)person phone:(NSString*)phone{
    ABMutableMultiValueRef phoneNumberMultiValue =  ABMultiValueCreateMutable(kABPersonPhoneProperty);  
    ABMultiValueAddValueAndLabel(phoneNumberMultiValue, phone,  kABPersonPhoneMobileLabel, NULL);
    ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, nil); 
    

    }

    有什么想法吗?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Ken Aspeslagh    14 年前

    是否尝试查询现有电话号码,然后添加新号码?

    类似这样(代码未测试):

    +(void)updatePhone:(ABRecordRef)person phone:(NSString*)phone{
    ABMutableMultiValueRef phoneNumberMultiValue =  ABMultiValueCreateMutableCopy (ABRecordCopyValue(person, kABPersonPhoneProperty));
    ABMultiValueAddValueAndLabel(phoneNumberMultiValue, phone,  kABPersonPhoneMobileLabel, NULL);
    ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, nil);
    }