2011-05-16 3 views
0

연락처의 표준 iPhone 주소록 (데이터베이스)을 사용하는 iPhone 응용 프로그램을 개발하고 있습니다. 연락처에 추가 속성을 추가해야하지만 iOS API가 연락처에 추가/사용자 지정 속성을 추가 할 수 없다는 것을 알기 때문에 추가 속성을 추가해야합니다.iOS/iPhone 프로그래밍. 주소록. 사용자/연락처를위한 추가 속성

질문 : 1. iOS 주소록 API에서 추가 속성을 처리 할 수 ​​있습니까? 2. 사용자/연락처에 대한 추가 데이터를 저장하는 방법에 대한 전문가의 조언이 필요합니다. SQLite, XML 또는 모든 응용 프로그램 전용 데이터 저장소가 있습니까?

답변

1

주소록 레코드에 사용자 지정 필드를 추가 할 수 없습니다. 레코드 ID에 매핑 된 사용자 정의 필드를 저장할 수있는 Core Data을 고려해야합니다.

+2

실제로 레코드 ID가 보장되지 않습니다 일정한. Apple의 주소록 프로그래밍 가이드 (iOS) : "주소록 데이터베이스의 모든 레코드에는 고유 한 레코드 식별자가 있습니다.이 식별자는 해당 레코드가 삭제되거나 MobileMe 동기화 데이터가 재설정되지 않는 한 항상 동일한 레코드를 참조합니다. 스레드간에 전달됨 장치간에 동일하게 유지되지 않을 수도 있음 특정 레코드에 대한 장기 참조를 유지하는 권장 방법은 이름과 성 또는 첫 번째와 마지막 이름의 해시를 저장하는 것입니다. 식별자 외에. " – PixelCloudSt

+0

iOS 7에서도 여전히이 기능을 사용할 수 있습니까? – bobsacameno

-1

주소록에 사용자 지정 속성을 추가하십시오.

다음 코드 목록은 사용자 정의 속성을 추가하고 제거 그것은 :

NSNumber* stringProperty = [NSNumber numberWithInteger:kABStringProperty]; 
NSString* testProperty = @"com.example.myProperty"; 
NSDictionary* dict = [NSDictionary dictionaryWithObject:stringProperty 
               forKey:testProperty]; 

NSInteger result = [ABPerson addPropertiesAndTypes:dict]; 
NSLog(@"Added %d properties.", result); 

result = [ABPerson removeProperties:[NSArray arrayWithObject:testProperty]]; 
NSLog(@"Removed %d properties.", result); 

상세 정보 :

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AddressBook/Tasks/AddingProperties.html

+0

솔루션에 대한 링크는 환영합니다. 그러나 링크가없는 상황에서 유용한 답변을 제공하십시오 : (// meta.stackexchange.com/a/8259) 동료 사용자는 그것이 무엇인지 알게 될 것입니다 그리고 왜 그곳에 있는지, 그리고 목표 페이지를 사용할 수 없을 때 당신이 링크하고있는 페이지의 가장 중요한 부분을 인용하십시오. [링크 이상의 답변은 삭제 될 수 있습니다.] (// stackoverflow.com/help/deleted-answers) – sudo