地址簿propertyID - 未知类型?

时间:2011-02-01 18:50:42

标签: iphone ipad ios addressbook

使用大量使用Address Book框架的应用程序。有许多视图控制器可以与地址簿数据进行交互,它们都可以正常工作。除了一个,它杀了我。

我有一个包含地址簿访问权限的类,方法如下:

- (NSDictionary*)labelsToValues:(ABPropertyID)propertyID {
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef aRecord = ABAddressBookGetPersonWithRecordID(addressBook, [self recordIdFromAddressBookId]);

NSMutableDictionary *entries = [NSMutableDictionary dictionary];    

ABMultiValueRef multiValueProperty = ABRecordCopyValue(aRecord, propertyID);
// do some other stuff

然后我在这样的地方叫它:

- (NSDictionary*)emailProperties {
return [self labelsToValues:kABPersonEmailProperty];
}

它有效!当然它确实如此,我发送的消息带有一个来自通讯簿框架的常量参数。所以它应该始终有效!

但事实并非如此。这个特定的emailProperties:消息是我在几个地方调用的消息......有时它可以工作,但有时却没有。当事情出错时,我把它通过调试器,我得到这样的东西: enter image description here

怎么可能!?甚至更奇怪,如果我通过查看其他一切行为符合预期的视图控制器来“解决”有问题的视图控制器,然后我回到有问题的视图控制器,一切正常。所以,我猜这是某种链接错误,但我不确定如何开始进行故障排除。

1 个答案:

答案 0 :(得分:0)

原来我的问题是Address Book constants evaluating as zero的欺骗,请投票结束。