gpt4 book ai didi

iphone - ABAddressBook ABSource 和 ABSourceType

转载 作者:行者123 更新时间:2023-12-03 18:44:02 26 4
gpt4 key购买 nike

我正在尝试创建一个可用于搜索 Exchange GAL 的应用程序,但是,我发现有关此主题的新 4.0 文档令人困惑。有谁知道我如何在 GAL 中搜索包含特定字符串的名称(例如“Smi”)?目前我的源代码几乎毫无用处,因为我只是想弄清楚如何指定我只想搜索 GAL 而不是设备上的本地联系人。另外,kABSourceTypeSearchableMask 是如何使用的?我在这里遗漏了一些基本的东西。从文档中...

来源类型

这些常量标识源的类型。

enum {
kABSourceTypeLocal = 0x0,
kABSourceTypeExchange = 0x1,
kABSourceTypeExchangeGAL = kABSourceTypeExchange | kABSourceTypeSearchableMask,
kABSourceTypeMobileMe = 0x2,
kABSourceTypeLDAP = 0x3 | kABSourceTypeSearchableMask,
kABSourceTypeCardDAV = 0x4,
kABSourceTypeCardDAVSearch = kABSourceTypeCardDAV | kABSourceTypeSearchableMask,
};
typedef int ABSourceType;

当我查询默认源类型时,我确实得到“1”,这似乎表明默认类型是“kABSourceTypeExchange”,这是正确的,因为这是我在“设置”中的类型。我不知道如何继续超越这一点......

由于整个源代码概念对于 4.0 中的 ABAddressBook 框架来说是一个新概念,我不认为人们对此有太多经验,但希望有人可以帮助我理解如何使用上述内容......谢谢。

最佳答案

要访问 Exchange GAL,您需要使用函数 ABAddressBookCopyArrayOfAllSources 获取所有源的数组,然后迭代该数组以尝试获取 Exchange GAL 的正确源。使用 ABRecordCopyValue() 函数获取源的 kABSourceTypeProperty 属性。

例如

ABRecordRef searchableExchangeSource;

addressBook = ABAddressBookCreate();
CFArrayRef allSources = ABAddressBookCopyArrayOfAllSources(addressBook);
for (CFIndex i = 0; i < CFArrayGetCount(allSources); i++) {
ABRecordRef source = (ABRecordRef)CFArrayGetValueAtIndex(allSources, i);

// Get source properties
NSNumber *sourceTypeRef = (NSNumber *)((CFNumberRef)ABRecordCopyValue(source, kABSourceTypeProperty));
NSString *sourceTypeName = (NSString *)((CFStringRef)ABRecordCopyValue(source, kABSourceNameProperty));
int sourceType = [sourceTypeRef intValue];
NSLog(@"Found Source Type: %@ with ABSourceType %i", sourceTypeName,sourceType);
if (sourceType == kABSourceTypeExchangeGAL) {
searchableExchangeSource = source;
}
[sourceTypeRef release];
[sourceTypeName release];
}

请注意,如果您设置了多个“Exchange”帐户,您将获得具有相同 ABSourceType 的多个源。不幸的是,根据我有限的测试,Exchange GAL 的 kABSourceTypeNameProperty 为 NULL,因此您无法使用此属性来区分多个 Exchange GAL 源。

一旦您获得了适当的源,它的类型就是 ABRecordRef,因此您可以像与任何其他记录一样与它进行交互。

关于iphone - ABAddressBook ABSource 和 ABSourceType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com