• iOS读取本地通讯录示例代码:


    iOS读取本地通讯录示例代码:

    + (NSArray *)readAllPeoples
    {
        ABAddressBookRef tmpAddressBook = nil;
        
        NSMutableArray *array = [[NSMutableArray alloc] init];
        
        if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0) {
            tmpAddressBook = ABAddressBookCreateWithOptions(NULL, NULL);
            dispatch_semaphore_t sema = dispatch_semaphore_create(0);
            ABAddressBookRequestAccessWithCompletion(tmpAddressBook, ^(bool greanted, CFErrorRef error){
                dispatch_semaphore_signal(sema);
            });
            dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
        } else {
            tmpAddressBook = ABAddressBookCreate();
        }
     
        if (!tmpAddressBook) {
            return nil;
        }
        
        NSArray *tmpPeoples = (__bridge NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);
        for(id tmpPerson in tmpPeoples){
            NSString *userName = @"";
            
            NSString *firstName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonFirstNameProperty);
            NSString *lastName = (__bridge NSString*)ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonLastNameProperty);
            
         if ([NSString isVaildString:firstName] && [NSString isVaildString:lastName]) {
                userName = [NSString stringWithFormat:@"%@%@",lastName,firstName];
    
            }else if([NSString isVaildString:firstName]){
                userName = [NSString stringWithFormat:@"%@",firstName];
            }else if([NSString isVaildString:lastName]){
                userName = [NSString stringWithFormat:@"%@",lastName];
            }
            
            ABMultiValueRef tmpPhones = ABRecordCopyValue((__bridge ABRecordRef)(tmpPerson), kABPersonPhoneProperty);
            NSInteger photoCount = ABMultiValueGetCount(tmpPhones);
            if (photoCount < 5) {
                for(NSInteger j = 0; j < photoCount; j++){
                    NSString *tmpPhoneStr = (__bridge NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);
                    ITTDINFO(@"telPhone:%@",tmpPhoneStr);
                    NSString *telPhone = [tmpPhoneStr stringByReplacingOccurrencesOfString:@"-" withString:@""];
                    if ([CommonUtils checkPhoneNumInput:telPhone]) {
                        AddressBookModel *model = [[AddressBookModel alloc] init];
                        model.userName = userName;
                        model.telPhone = telPhone;
                        [array addObject:model];
                    }
                }
            }
            CFRelease(tmpPhones);
        }
        
        CFRelease(tmpAddressBook);
        
        return array;
    }


    + (BOOL)checkPhoneNumInput:(NSString *)telePhone

    {

        NSString *MOBILE = @"^1[34578][0-9]{9}$";

       NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];

       return [regextestmobile evaluateWithObject:telePhone];

    }



  • 相关阅读:
    Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存
    Hudi on Flink在顺丰的实践应用
    Kafka监控必备——Kafka-Eagle 2.0.2正式发布
    如何将炫酷的报表直接截图发送邮件——在Superset 0.37使用Schedule Email功能
    突发!美商务部宣布封禁微信,TikTok——面对科技封锁,如何应对
    离线安装Superset 0.37
    Windows系统快速安装Superset 0.37
    Superset 0.37 发布——颜值最高的数据可视化平台
    Hive查看,删除分区
    超详细,Windows系统搭建Flink官方练习环境
  • 原文地址:https://www.cnblogs.com/tomblogblog/p/4201211.html
Copyright © 2020-2023  润新知