2011-02-01 53 views
0

使用大量使用地址簿框架的应用程序。有很多视图控制器可以与地址簿数据交互,并且它们都可以正常工作。除了一个,它杀了我。地址簿propertyID - 未知类型?

我有一个包裹的地址簿访问类中的方法,如:

- (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

这怎么可能!?更奇怪的是,如果我通过查看其他视图控制器来“排除”有问题的视图控制器,其中所有行为都像预期的那样,然后返回到有问题的视图控制器,那么一切正常。所以,我猜这是一些链接错误,但我不知道如何开始解决这个问题。

+0

[地址簿常量评估为零]的可能重复(http://stackoverflow.com/questions/1235131/address-book-constants-evaluating-as-zero) – bpapa 2011-02-13 03:49:01

回答