2013-07-23 4 views
0

여러 장소에서 문자열 배열 (팀 이름을 가정 해 봅시다)을 자주 참조해야합니다. 해당 배열의 내용은 변경되지 않습니다.NSArray에서 사용자 정의 클래스 메소드를 사용하여 상수를 반환 할 수 있습니까?

이를 달성하기 위해 나는 내 자신의 클래스 인 MyConstants을 정의했습니다. 헤더에서 관련이없는 상수와 숫자를 정의하고 있습니다. 구현 파일에서 클래스를 싱글 톤으로 만든 다음 클래스 메서드 arrayOfTeamNames을 추가했습니다.

배열에 액세스하려면 [Constants arrayOfTeamNames]를 사용합니다.

나는 이것을 사용할 수 있습니까?

NSString과 NSArray가 클래스 메서드를 통해 생성을 처리하는 방법에 대해 생각했습니다. 예를 들어 빈 배열을 원하면 [NSArray array]을 사용할 수 있습니다. 따라서 'array'는 NSArray의 클래스 메소드입니다.

위의 구현 대신, 내 자신의 클래스를 사용하는 대신 NSArray에 '+ arrayOfTeamStrings'를 추가하는 카테고리를 사용해야합니까?

또는 NSArray의 자체 하위 클래스를 만들고 거기에 클래스 메서드를 추가해야합니까?

두 경우 모두 클래스를 싱글 톤으로 만들어야합니까? 아니면 필요하지 않은가?

+2

생각하고있는 것처럼 생각하고 계속 걱정하면 스트레스를받을 수 있습니다. 당신이 가지고있는 것은 괜찮아 보이고, 당신이 정말로 이미 다른 불변의 배열 셋업을 속성 설정 메소드 타입의 메소드로 바꾸는 것에 대해 정말로 걱정한다면. – rezand

답변

0

일반적으로 카테고리를 통해 기초 클래스에 클래스 메소드를 추가하는 데는 매우 유용합니다. 그러나이 경우 실제로는 arrayOfTeamNamesMyConstants의 일부가됩니다. 팀 이름이 NSArray이라는 사실은 응용 프로그램에서 상수라는 사실만큼 중요하지 않습니다.

MyConstants에 정의 된 값이 매우 다양하고 관련이없는 경우 또는 그 중 몇 개만있는 경우 MyConstants을 클래스에서 제거하거나 카테고리를 사용하거나 externs (예 : extern NSArray * const BPAllTeamNames.