2009-11-05 6 views
2

이것은 호기심에서 벗어났습니다.하지만 열거 형을 선언 할 때 구현 선언 내에서 또는 외부에서 열거 형을 사용하는 것이 더 좋을까요? 가장 좋은 방법은 무엇입니까? 예를 들어 :enum 구조체를 선언 할 위치는 어디입니까?

@implementation PostQuestionScene 

enum popUpItems{ 
kExpiredBox, 
kPauseBackground 
}; 

대 ..

enum popUpItems{ 
kExpiredBox, 
}; 

@implementation PostQuestionScene .. 

답변

2

나는 기술적 인 차이가 있다고 생각하지 않습니다. 하나 또는 작은 메소드 그룹에서만 사용하지 않는 한 @implementation (다른 모든 선언과 함께)에 배치 할 것입니다.이 경우 해당 메소드 바로 앞에 배치 할 것입니다.

물론 클라이언트 나 하위 클래스에서 사용할 수있는 경우 헤더 파일 (정의 : @interface)에 있어야합니다.

4

나는 또 다른 변수처럼 그래서 항상 형식 정의를하는 경향이 :

typedef enum { 
kExpiredBox, 
kPauseBackground 
} popUpItems_t; 

은 그 다음의 인스턴스를 만들 수 있습니다.
popUpItems_t popUpItems; 

당신은 그들이 인수로 받아해야하는 경우, 예를 들어, (헤더가 포함되어 있으므로 때 헤더의 형식 정의를 넣어, 다른 모듈들이 처리에서 타입 정의를, 그 모듈 외부에서 사용할 경우

,) 그렇지 않으면 구현에 넣으십시오 (public/private 변수를 생각하십시오.)

+2

'#typedef enum '은 무엇입니까? 'typedef enum '을 의미하지 않습니까? –

+0

예. 누군가가 알아 차릴 지 궁금해하고있었습니다. +1. –

관련 문제