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:消息是我在几个地方打电话给你的,有时它可以工作,但有时它不会。当事情出错时,我把它通过调试器,我得到这样的东西:
这怎么可能!?更奇怪的是,如果我通过查看其他视图控制器来“排除”有问题的视图控制器,其中所有行为都像预期的那样,然后返回到有问题的视图控制器,那么一切正常。所以,我猜这是一些链接错误,但我不知道如何开始解决这个问题。
[地址簿常量评估为零]的可能重复(http://stackoverflow.com/questions/1235131/address-book-constants-evaluating-as-zero) – bpapa 2011-02-13 03:49:01