2009-10-08 5 views
2

obj-c (선택자)에 프리미티브가있는 가변 배열을 원합니다. 이 작업을 수행하는 데 권장되는 방법은 무엇입니까? NSArray이며 개체 만 저장할 수 있습니다.objective-c 프리미티브 배열

+0

중복 http://stackoverflow.com/questions/1539017/nsarray-with-c-types –

답변

7

선택자 또는 필요한 다른 기본 유형을 래핑하려면 NSValue을 사용해야합니다. 코코아에서 SEL은 일종의 포인터입니다. 따라서 [NSValue valueWithPointer:whatever]을 사용하여 구성하고 [value pointerValue]을 사용하여 구성 할 수 있습니다. 또는 일반적으로 [NSValue valueWithBytes:&whatever objCType:@encode(SEL)]을 사용할 수 있습니다. 이것은 모든 유형에 적용됩니다.

+0

감사합니다. NSValue에 대해 알지 못했습니다. – quano

0

직접 C 스타일 배열을 관리하는 것 (IMO는 가장 좋은 옵션은 아닙니다) 이외에는 NSArray/NSMutableArray을 사용하고 NSNumber을 사용하여 숫자를 저장하는 것이 유일한 방법입니다. 실제 수치 유형보다 값을 얻는 것이 약간 더 짜증나지만 배열 메모리를 직접 관리하지 않아도됩니다.

+0

사실, 내가 저장하고 싶은 것은 SEL입니다. 정말 어떤 타입인가요? – quano

0

기본 유형은 일반적으로 숫자 (정수 또는 부동 소수점 일 수 있음) 또는 포인터이기 때문에이를 용도에 맞게 줄이는 데 사용되는 클래스를 사용할 때의 문제점은 무엇입니까? NSMutableArrayNSNumbers입니다. 당신이 SEL 객체의 배열을 저장하려면

6

, 쉬운 일은 NSStringFromSelector() 기능을 사용하여 NSString들에 SEL의 변환 NSMutableArray에 저장 한 다음 당겨 때 SEL들로 다시 변환하는 것 그들 밖으로 NSSelectorFromString() 기능을 사용합니다.

+0

흠, 그게 효과가 있다고 생각합니다. 감사. – quano