2011-09-16 2 views
0

개체를 반환 할 때 respondsToSelector 메서드의 반환 형식을 얻을 수 있다는 것을 알고 있지만 NSInteger와 같은 기본 형식을 반환 할 때는 작동하지 않습니다. . NSInteger.T_T를 반환하는 잘못된 SEL을 사용하여 NSString을 초기화 할 때 응용 프로그램이 다운 됨 지금 할 수있는 것은 make 메소드가 프리미티브 유형을 반환해야 할 때 NSNumber 값을 반환한다는 것입니다. 나는 이것을해야합니까? 기본 유형을 반환 할 때 SEL의 리턴 유형을 얻는 간단한 방법이 있습니까?respondsToSelector 메서드의 반환 형식을 원시 형식 값을 반환 할 때 얻는 방법

답변

0

NSNumber을 사용할 때의 문제점은 무엇입니까? 숫자의 "유형"(즉, 정수, 부동)이 무엇인지 알면 -[NSNumber integerValue] 또는 -[NSNumber floatValue]을 호출하여 필요한 프리미티브를 얻을 수 있습니다. 당신은 원시 형이 다시 올 것 알고 발생하지 않는 경우

, 당신은 @encode() 지시를 포함하는 C 스타일의 문자열을 얻기 위해 NSNumber 인스턴스의 objCType 속성을 사용할 수 있습니다. 이는 Objective-C 데이터가 인코딩되는 방법을 나타냅니다. 자세한 내용은 Type Encoding을 참조하십시오.

돌아 오는 C 문자열을 인코딩 할 경우 실제로 NSNumber 인스턴스에 저장된 기본 유형에 따라 응답하고 앞에서 설명한 방법을 사용하여 올바른 값을 검색 할 수 있습니다.

+0

많은 수의 NSNumber를 사용하면 메모리 사용량이 높아 집니까? – Dogstar

+0

그렇게해서는 안됩니다. 걱정이된다면 코드를 프로파일 링해야하지만, 메모리 사용 등을 미리 가정하지는 마십시오. – LucasTizma

+0

많은 도움이됩니다. U ~~~ – Dogstar

관련 문제