AdressBook
에 관계없이 ABRecordRef
의 Content
을 내 애플리케이션에 저장하고 싶습니다. 그 권리를 가지고있는 경우NSObject를 빌드하여 ABRecordRef 데이터를 저장하십시오.
은, 하나는 NSCoding
이 기능 initWithABRecordRef
및 getABRecordRefFromPeopleData
ABRecordRef
의 모든 값과 적어도 NSObject
서브 클래스를 준수해야합니다 (가정 : 유래와 애플 개발자 사이트를 통해 crossreading 후 나는 이것이 가장 좋은 방법 발견 하나는 그의 클래스 peopleData를 명명하고, initWithABRecordRef
은 ABRecordRef
(null이 아닌 경우)의 모든 값을 자체 클래스의 인스턴스로 채우고 getABRecordRefFromPeopleData
은 자신의 클래스 인스턴스에 저장된 데이터로 ABRecordRef
은폐 데이터 형식을 반환합니다. 그것
내 질문은 :
궁금 거기에 누군가가 이미 내가 상상할 수 있기 때문에, 다른 사람들이 전에 똑같은 문제에 온 것을 한 경우. 만약 그렇다면, 그 수업을 손에 넣는 것은 새로운 일이 될 것입니다. 그렇지 않다면, 제가 스스로 시도하고 싶다면 여기에 결과를 올려야합니다. 어쩌면 당신은 더 나은 방법을 알 수 있습니까?
솔루션을 구현 한 경우 공유하십시오. 당신이 같은 것을 필요로한다면, 나는 그것을 함께 해결해 주셔서 감사합니다.
편집 : 나는 지금 내가 몇 가지 불분명 한 문제에 달렸다 (내가 예상 한대로) 물건과 작업을 시작
. kABStringPropertyType
가치에 관해서는 내 개념이 꽤 직설적입니다. 작은 예 :
@implementation RealRecord
@synthesize firstName; //NSString
- (id)initWithRecordRef:(ABRecordRef)record{
//Single valued entrys
NSString *contactName = (NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty);
firstName=contactName;
[contactName release];
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder{
//single value entrys
self.firstName= [aDecoder decodeObjectForKey:@"firstName"];
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:firstName forKey:@"firstName"];
}
- (ABRecordRef)returnABRecordRefFromRealRecord{
ABRecordRef returnRecord =ABPersonCreate();
ABRecordSetValue(returnRecord, kABPersonFirstNameProperty, firstName, NULL);
return returnRecord;
}
잘 작동합니다. 이제 나에게 NSMutableArray
이메일 목록 만든 kABMultiStringPropertyType
.I과 같은 일을 수행하는 방법에 너무 확실하지 메신저와 같은했다 :
- (id)initWithRecordRef:(ABRecordRef)record{
//Multi valued entrys
ABMutableMultiValueRef email=ABRecordCopyValue(record, kABPersonEmailProperty);
for (int i = 0; i < ABMultiValueGetCount(email); i++) {
NSString *anEmail = [(NSString*)ABMultiValueCopyValueAtIndex(email, i) autorelease];
[emailList addObject:anEmail];
}
return self;
}
이 방법에 작업의 나머지 부분을 수행하는, 슈어하지 메신저 다중 값. 난 그냥 문자열로 한 것처럼 NSMutableArray 인코딩하고 디코딩 할 수 또는 모든 전자 메일에 대한 키를 설정해야합니까 emailList
?
내가 어떻게 returnRecord에 망할 건가요?