2012-07-10 5 views
2

코어 데이터에 CGRect과 같은 C 구조체에 대해 NSValueTransformer을 어떻게 만들 수 있습니까?코어 데이터의 C 구조체에 대한 NSValueTransformer

외관상으로는 transformedValue & reverseTransformedValue 필요 및 id입니다. void* 또는 더 좋은 방법을 전달할 수있는 방법이 있습니까?

+1

에 선언

[NSValue valueWithCGRect:rect] 

당신이 해봤 사용할 수 있습니다 ['NSValue'] (https://developer.apple. co.kr/library/mac/# documentation/Cocoa/Reference/Foundation/Classes/nsvalue_Class/Reference/Reference.html)? – Joe

답변

6

NSValue를 사용하여 C 포인터를 래핑합니다.

[NSValue valueWithPointer:&struct] 

구체적 CGRect를 들어, UIKit/UIGeometry.h

+0

불행하게도 이것은'CATransform3D' (실제로'NSValue'로 묶을 수 있습니다)와는 작동하지 않습니다 :'- [NSKeyedArchiver encodeValueOfObjCType : at :] :이 아카이버는 구조체를 인코딩 할 수 없습니다. ' 어떤 팁? – elsurudo

+0

나는'NSValueTransformer' 서브 클래스를 작성하여'CATransform3D'를'NSString'으로 변환하고 그것을 다시 트랜스포머 클래스로 설정했지만 같은 결과를 ... – elsurudo