1

我正在使用 gthe 以下函数添加联系人列表(以前以 NSData 格式保存)。然而,联系人被添加,在显示确认消息之前需要两分钟的延迟。首先,当我运行应用程序时,我看不到结果,我以为有问题,然后我会关闭应用程序,但不小心等了 5 分钟,发现联系人已添加并出现在地址中书。

  • (无效)recoverContacts:(NSData *)datacon {

    NSMutableArray *d2contact = [NSKeyedUnarchiver unarchiveObjectWithData:datacon]; CNContactStore *store = [[CNContactStore alloc] init];

    [store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL grant, NSError * _Nullable error) { if (!granted) { dispatch_async(dispatch_get_main_queue(), ^{ // 用户没有授予访问权限; // 所以,再次告诉用户这里为什么应用程序需要权限才能完成它的工作; // 这被分派到主队列,因为这个请求可能在后台线程上运行 }); 返回; } 别的{

    // create contact
    
    CNMutableContact *contact = [[CNMutableContact alloc] init];
    CNMutableContact *contact1 = [[CNMutableContact alloc] init];
    contact = d2contact[1];
    
    contact1.familyName = contact.familyName;
    contact1.givenName = contact.givenName;
    
    CNSaveRequest *request = [[CNSaveRequest alloc] init];
    [request addContact:contact1 toContainerWithIdentifier:nil];
    [sinformation setText:[NSString stringWithFormat:@"Hare Krishna Hare Rama!!!%@", contact1]];
     //save it
    
    NSError *saveError;
    if (![store executeSaveRequest:request error:&saveError]) {
        [sinformation setText:[NSString stringWithFormat:@"Hare Krishna Hare Rama!!!%@", saveError]];
      }
    }
    

    }]; }

4

0 回答 0