2011-01-21 2 views
0

이것은 가설적인 질문 일 수 있습니다. 확실하지 않습니다.객체를 프리미티브에 매핑하는 방법이 있습니까?

C# 배경에서 오면서 Objective-C에서 객체 지향 프리미티브를 놓친 적이 있습니다. 대신, BOOLint에서 NSNumber으로 끝없이 변환해야합니다. 다루기 힘들고 잠재적으로 버그가있는 코드가 생성됩니다.

지도 모든 프리미티브 값 유형을 전체적으로 기술적으로 가능 등 int, BOOL, float 등, 그 객체 지향 반대 편에, 즉 NSNumber?

+0

"원시 타입에서 NSNumber로 그리고 다시 다시 변환해야한다는 것"은 무엇을 의미합니까? 가끔 내 애플 리케이션에서 이것을 수행해야합니다. 가끔은하지만, 드문 경우입니다. 왜 변환합니까? ? –

+0

코어 데이터. 영속적 인 모델에 원시 값을 저장할 수는 없으며, 정당하게도 그렇습니다. 코코아의 프리미티브가 실제 객체 였으면 좋겠습니다. –

답변

1

기술적으로 가능합니까? 확실한. 전적으로.

CF*Dictionary 및/또는 NSMapTable을 참조하십시오. 둘 모두 Objective-C 인스턴스와 기본 유형 및/또는 비 -Active-C 유형 간의 매핑을 허용합니다.

필요에 따라 조회를 수행하거나 컴파일러를 수정하여 코드를 작성해야 할 필요가있을 것입니다. 전반적으로 복잡 할뿐만 아니라 움직이는 부분이 많으므로

0

나는 그렇게 생각하지 않으며 그것이 당신을 많이 할 것이라고 생각하지 않는다. 흐름과 함께 가기 가장 좋습니다. 컴파일러 경고를 무시하지 않으면 버그가있는 코드가 거의 발생하지 않습니다.

관련 문제