문제

OBJ-C (SELECTORS)에서 프리미티브가있는 변이 가능한 배열을 원합니다. 이 작업을 수행하는 권장 방법은 무엇입니까? NSArray 그리고 그것들은 물체 만 담을 수 있습니다.

도움이 되었습니까?

해결책

당신은 an을 사용해야합니다 NSValue 선택기 또는 필요한 기타 원시 유형을 감싸기 위해. Cocoa에서는 일종의 포인터이므로 사용할 수 있습니다. [NSValue valueWithPointer:whatever] 그것을 구성하고 [value pointerValue] 그것을 꺼내려면. 또는 일반적으로 사용할 수 있습니다 [NSValue valueWithBytes:&whatever objCType:@encode(SEL)]; 이것은 모든 유형에 맞습니다.

다른 팁

배열을 저장하려는 경우 SEL 대상, 가장 쉬운 것은 변환하는 것입니다. SELs to NSStrings를 사용합니다 NSStringFromSelector() 기능, 안에 저장하십시오 NSMutableArray, 그런 다음 다시 변환합니다 SELs를 사용하여 꺼낼 때 NSSelectorFromString() 기능.

C 스타일 어레이를 직접 관리하는 것 외에 (확실히 최상의 옵션이 아님) 유일한 옵션은 사용하는 것입니다. NSArray/NSMutableArray, 숫자를 사용하여 저장하십시오 NSNumber. 실제 숫자 유형보다 값을 얻는 것이 약간 성가 시지만 배열의 메모리를 직접 관리하지 못하게됩니다.

원시 유형은 일반적으로 숫자 (정수 또는 떠 다니는 점) 또는 포인터이기 때문에 목적을 위해 사용하는 데 사용되는 클래스를 사용하는 데 문제가있는 것은 무엇입니까? an NSMutableArrayNSNumbers, 예를 들어?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top