- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个可用于搜索 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/
我想读取 addressBook 框架中 ABSource 的名称。这可能吗?下面的代码示例留给我 null,而 currentSource 指针是有效的。 NSString* str
我正在尝试创建一个可用于搜索 Exchange GAL 的应用程序,但是,我发现有关此主题的新 4.0 文档令人困惑。有谁知道我如何在 GAL 中搜索包含特定字符串的名称(例如“Smi”)?目前我的源
我正在为 Mac 开发自定义“联系人”实现,但我发现无法从 iOS 获得 ABSource 的等效行为。例如,在 Mac 联系人应用程序中,我可以看到我的 iCloud 源及其下方的组。当我查询 AB
有没有人使用 ABAddressBook 框架或其他方式在链接到 iOS 设备的 Exchange GAL 中成功搜索名称? 我已经设法从设备上存储的联系人中获取所有姓名 - 这一点很简单 - 但它不
有人有如何在 iOS 4+ 中从 ABAddressBook 获取特定 ABSource 的示例吗? 最佳答案 iOS 4+ 提供了新的 API,允许人们从 ABAddressBook 中选择特定的
我是一名优秀的程序员,十分优秀!