Objective-C :: 임의의 데이터 타입을 NSData로 인코딩하기
NSValue NSData 변환
NSValue
를 NSData
로 변환하는 방법에 대해 생각해보자. 코어데이터 등에서 표준으로 지원하는 타입이 아닌 경우, NSData
를 이용해서 이진데이터로 저장하는 방법이 있는데, 예를 들어서 NSRange
(이건 C구조체이다.)를 이진데이터로 바꾸는 것은 다음과 같이 하면 된다.
NSRange r = NSMakeRange(0, 10);
NSValue* v = [NSValue valueWithRange:r];
NSData* d1 = [NSKeyedArchiver archivedDataWithRootObject:v];
구조체나 스칼라값 타입은 NSValue
로 감싼 다음 이진데이터로 직렬화할 수 있다. NSValue
역시 NSCoding
프로토콜을 따르므로 위와 같이 처리하면 되는데….더 보기 »Objective-C :: 임의의 데이터 타입을 NSData로 인코딩하기