2011-02-01 26 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

回答