iphone - 默认 iPhone 地址簿人员电话号码标签周围有哪些标签?

标签 iphone macos abaddressbook

我的问题涉及 iPhone 上联系人列表的人员条目中一些默认电话号码标签周围的标记。

我已为“John Smith”创建了一个 iPhone 联系人列表地址簿条目,其中包含以下电话号码条目:

  • 手机 (604) 123-4567
  • iPhone (778) 123-4567
  • 首页 (604) 789-4561
  • 工作 (604) 456-7891
  • 总机 (604) 789-1234
  • 扩音器 (234) 567-8990

请注意,前五个标签是联系人应用程序提供的默认标签,最后一个标签“扩音器”是自定义标签。

我编写了以下方法来检索并显示地址簿中每个人的标签和电话号码:

-(void)displayPhoneNumbersForAddressBook {
    ABAddressBookRef book = ABAddressBookCreate();
    CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(book);
    ABRecordRef record = CFArrayGetValueAtIndex(people, 0);
    ABMultiValueRef multi = ABRecordCopyValue(record, kABPersonPhoneProperty); 
    NSLog(@"---------" );
    NSLog(@"displayPhoneNumbersForAddressBook" );

    CFStringRef label, phone;
    for (CFIndex i = 0; i < ABMultiValueGetCount(multi); ++i) {
            label = ABMultiValueCopyLabelAtIndex(multi, i);
            phone = ABMultiValueCopyValueAtIndex(multi, i);
            NSLog(@"label: \"%@\"     number: \"%@\"", (NSString*)label, (NSString*)phone);
            CFRelease(label);
            CFRelease(phone);
    }
    NSLog(@"---------" ); 
    CFRelease(multi);
    CFRelease(people);
    CFRelease(book);
}

这是我输入的地址簿条目的输出:

2010-03-08 13:24:28.789 test2m[2479:207] ---------
2010-03-08 13:24:28.789 test2m[2479:207] displayPhoneNumbersForAddressBook
2010-03-08 13:24:28.790 test2m[2479:207] label: "_$!<Mobile>!$_"     number: "(604) 123-4567"
2010-03-08 13:24:28.790 test2m[2479:207] label: "iPhone"     number: "(778) 123-4567"
2010-03-08 13:24:28.791 test2m[2479:207] label: "_$!<Home>!$_"     number: "(604) 789-4561"
2010-03-08 13:24:28.791 test2m[2479:207] label: "_$!<Work>!$_"     number: "(604) 456-7891"
2010-03-08 13:24:28.792 test2m[2479:207] label: "_$!<Main>!$_"     number: "(604) 789-1234"
2010-03-08 13:24:28.792 test2m[2479:207] label: "megaphone"     number: "(234) 567-8990"
2010-03-08 13:24:28.793 test2m[2479:207] ---------

什么是标记字符

_$!< and >!$_

除了 iPhone 之外,周围大多数的默认标签是什么?

你能告诉我在“iPhone OS 通讯簿编程指南”中哪里可以找到这些信息吗?

感谢您的帮助。

最佳答案

我也遇到了同样的问题。这是我目前的想法。

您看到的标记向系统表明这是默认标签而不是自定义标签。如果您运行此代码:
NSLog(kABOtherLabel);

你会得到这个结果:
_$!<Other>!$_

这就是 kABOtherLabel 中存储的值常量(CFStringRef 类型)。我想原因iPhone周围没有标记,因为它是“自定义”标签,但它是由 Apple 而不是用户发起的。

您可以为标签指定任何您喜欢的值,如 megaphone 所示上面的标签。但请注意,如果您尝试创建带有“其他”标签的电话号码(或电子邮件地址)而不使用 kABOtherLabel常数或其值 _$!<Other>!$_ ,系统会认为您正在创建自定义标签。就像这个例子一样:

ABMultiValueAddValueAndLabel(email, @"nospam@notarealdomain.com", @"other", NULL);

如果您在 iPhone 上编辑该地址簿条目,它将显示在单独的自定义标签列表中。 (因此“其他”有 2 种选择,一种是默认标签,一种是自定义标签)

虽然这没有回答您的问题,但希望对您有所帮助。

关于iphone - 默认 iPhone 地址簿人员电话号码标签周围有哪些标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404975/

相关文章:

swift - 如何使用 swift 将变量数组分成更小的数组

swift - 请求访问地址簿时应用程序卡住

iphone - 在另一个类中使用一个类中的字符串变量

iPhone 崩溃日志?

iPhone 应用程序大小限制

ios - 我可以从 iOS 应用程序分享多个图像和多个视频吗

java - OSX 上的独占串行端口访问

c++ - OSX 10.8.2 上的 Poco C++ 库 : Undefined symbols for architecture x86_64

ios - 如何打开特定联系人的编辑联系人屏幕

c# - 在 iPhone 中获取重复电话号码的理想方法是什么 - MonoTouch