2011-02-01 6 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]; 
} 

을 그리고 그것은 작동한다! 물론, 주소록 프레임 워크에서 Constant라는 인수를 사용하여 메시지를 보냅니다. 그래서 항상 작동해야합니다!

하지만 그건 사실이 아닙니다. 이 특정 emailProperties : 메시지는 여러 곳에서 호출하는 메시지입니다 ... 가끔은 작동하지만 가끔은 그렇지 않습니다. 오류가 발생하면 디버거를 통해 다음과 같이 표시됩니다. enter image description here

어떻게 가능합니까?! 심지어 모든 것이 예상대로 작동하는 다른 View Controller를보고 문제점이있는 View Controller를 "초기"로 분류 한 다음 문제가있는 View Controller로 돌아 가면 모든 것이 정상적으로 작동합니다. 그래서 저는 이것이 일종의 링크 오류라고 추측 합니다만, 문제 해결로 시작하는 방법조차 모릅니다.

+0

가능한 [주소록 상수가 0으로 평가됨] 중복 (http://stackoverflow.com/questions/1235131/address-book-constants-evaluating-as-zero) – bpapa

답변