此代码在 iOS 5.1 上运行良好,并且在 iOS 6 的 iPhone 模拟器中也可以运行。它在运行 iOS 6 的 iPhone 4 上静默失败。最终结果是我无法将人员添加到联系人应用程序。以下代码片段都不起作用(每个都跟在日志后面):
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(_addressBook);
NSLog(@"2 - defaultSource = %@", defaultSource);
AB:无法编译查询语句(ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties):SELECT ROWID、名称、ExternalIdentifier、Type、ConstraintsPath、ExternalModificationTag、ExternalSyncTag、AccountID、Enabled、SyncData、MeIdentifier、Capabilities FROM ABStore WHERE Enabled = ?;
2012-09-24 11:00:36.731 QR vCard[193:907] 2 - defaultSource = (CPRecord: 0x1f59fd50 ABStore)
当我尝试将一个人添加到通讯簿时,我得到了这个(似乎是因为来源无效,即使从上面看起来它可能是好的):
2012-09-24 11:18:32.231 QR vCard[220:907] ABAddressBookAddRecord 错误 = 操作无法完成。(ABAAddressBookErrorDomain 错误 1。)
我以为我可以获取所有来源,然后选择一个,但以下内容根本没有返回:
CFArrayRef allSources = ABAddressBookCopyArrayOfAllSources (_addressBook);
NSLog(@"2 - allSources = %@", allSources);
AB:无法编译查询语句(ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties):SELECT ROWID、名称、ExternalIdentifier、Type、ConstraintsPath、ExternalModificationTag、ExternalSyncTag、AccountID、Enabled、SyncData、MeIdentifier、Capabilities FROM ABStore WHERE Enabled = ?;
2012-09-24 10:58:09.908 QR vCard[177:907] 2 - allSources = ()