Objective c 如何使用Contacts框架(iOS9)获取容器名称
我正在应用程序中使用联系人框架。我要做的是根据联系人的容器对所有联系人进行分类。e、 g.facebook联系人的标题为“facebook”,谷歌联系人的标题为“谷歌”。但是,当我打印容器的名称时,有时会出现空的、空的或模糊的内容,比如“地址簿”。有没有办法找出哪个容器属于哪个帐户(本地、facebook、google等)。提前谢谢Objective c 如何使用Contacts框架(iOS9)获取容器名称,objective-c,ios9.1,Objective C,Ios9.1,我正在应用程序中使用联系人框架。我要做的是根据联系人的容器对所有联系人进行分类。e、 g.facebook联系人的标题为“facebook”,谷歌联系人的标题为“谷歌”。但是,当我打印容器的名称时,有时会出现空的、空的或模糊的内容,比如“地址簿”。有没有办法找出哪个容器属于哪个帐户(本地、facebook、google等)。提前谢谢 CNContactStore *contactStore = [[CNContactStore alloc]init]; NSArray *keys
CNContactStore *contactStore = [[CNContactStore alloc]init];
NSArray *keysToFetch = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactIdentifierKey,CNContactMiddleNameKey,CNContactPhoneNumbersKey];
NSError *error;
NSArray *containers = [contactStore containersMatchingPredicate:nil error:&error];
for (CNContainer *container in containers) {
NSLog(@"Container: %@",container.name);
}
初始化数组对我很有用:
NSArray*容器=[[NSArray alloc]init] 我在这个问题上花了两天时间,但没有得到任何解决方案 然后用一个补丁就可以了。这是为我工作 目标C
if ([container.name isEqualToString:@"Card"]) {
NSLog(@"iCloud");
} else if ([container.name isEqualToString:@"Address Book"]) {
NSLog(@"google");
} else if ([container.name isEqualToString:@"Contacts"]) {
NSLog(@"Yahoo");
} else {
NSLog(@"Other");
}
Swift 5.3
if container.name == "Card" {
print("iCloud")
} else if container.name == "Address Book" {
print("google")
} else if container.name == "Contacts" {
print("Yahoo")
} else {
print("Other")
}
调试器显示CNContainer有一个名为accountIdentifier的成员,但它似乎总是为null。我想知道它是否与Contacts.app用来获取帐户名作为容器标签的苹果私有API有关。也就是说,出于某种原因,苹果似乎并不想让我们知道这些信息。也许它对Exchange容器更有用,因为容器名称用作组名。有兴趣了解这方面的进展吗?没有,我到目前为止还没有。