【AddressBook】ABMultiValue - 多信息

其实还是 CFTypeRef 类型,添加类似多个手机号的多信息;依旧使用ABRecord 类添加

  • 创建
    ABMutableMultiValueRef muRef = ABMultiValueCreateMutable(kABStringPropertyType);
//    ABMutableMultiValueRef muRefCopy = ABMultiValueCreateMutableCopy(phones);
  • 操作
    if (ABMultiValueAddValueAndLabel(muRef, @"13456990987", (__bridge CFStringRef)@"测试标题", NULL)) {
        NSLog(@"添加");
    }
    
    if (ABMultiValueInsertValueAndLabelAtIndex(muRef, @"13456990987", (__bridge CFStringRef)@"测试标题", 0, NULL)) {
        NSLog(@"指定位置添加");
    }
    
    if (ABMultiValueRemoveValueAndLabelAtIndex(muRef, 0)) {
       NSLog(@"指定位置移除");
    }
    
    if (ABMultiValueReplaceValueAtIndex(muRef, @"13456990987", 0)) {
        NSLog(@"指定位置,替换内容");
    }
    
    if (ABMultiValueReplaceLabelAtIndex(muRef, (__bridge CFStringRef)@"测试标题啊啊啊", 0)) {
        NSLog(@"指定位置,替换标题");
    }
    
    // 这个是 ABRecord 类的 基础添加信息
    if (ABRecordSetValue(person, kABPersonPhoneProperty, muRef, NULL)) {
        NSLog(@"修改信息");
    };
  • 获取
    // 复制
    ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
    
    // 属性类型
    ABPropertyType pType = ABMultiValueGetPropertyType(phones);
    
    // 数据条数(例如:联系号码条数)
    CFIndex count = ABMultiValueGetCount(phones);
    
    // 取所有值 ()
    CFArrayRef array = ABMultiValueCopyArrayOfAllValues(phones);
    
    // 取某条值(187-6711-xxxx)
    CFTypeRef value = ABMultiValueCopyValueAtIndex(phones, 0);
    
    // 值的 标题(浙江 杭州 移动)
    CFStringRef str = ABMultiValueCopyLabelAtIndex(phones, 0);
    
    // 某位置的id
    ABMultiValueIdentifier idindex = ABMultiValueGetIdentifierAtIndex(phones, 0);

    // 某id 的位置
    CFIndex idValue = ABMultiValueGetIndexForIdentifier(phones, idindex);
    
    // 查找 某个值的index -1 不存在
    CFIndex indexOfValue = ABMultiValueGetFirstIndexOfValue(phones, @"123");
    1

AddressBook 的其他API

#include <AddressBook/ABGroup.h>
#include <AddressBook/ABSource.h>
这两个 还是没搞清楚 搞什么玩意,好像也没怎么用到;;

1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,436评论 25 708
  • 秋风抚过面庞,我缓缓的睁开了眼睛。真快啊,院里的树已经染上了点点金色,风也渐渐冷却了下来,褪去了夏天的燥热,它似乎...
    charlotteZ阅读 355评论 0 2
  • 今天是总决赛的第一场,结果是勇士十五分的优势战胜了骑士,保住了主场。这场比赛,因为上午有事情只看了手机的文字直播,...
    剽悍的兔子阅读 131评论 0 0
  • 啊天冷我又想到他了,我亲爱的意面,满满的回忆和满满的麦香。 本周,厨娘可可酱做了三次意面,然而并没有吃到反感,反而...
    CaseySays阅读 676评论 0 4