시간을 절약하고 코드를 읽을 수있게하려고합니다. BOOL을 리턴하는 'isXXX'메시지가 많이 있습니다. 나는 끊임없이 더 많은 'is'메시지를 추가하고있다. 미리 컴파일 할 때 매크로를 확장하여 목록을 통해 만들 수 있습니까?확장 가능한 매크로 미리 컴파일
지정할 내용 : isMacro (1, 2, 3). (BOOL) IS1 {...} - -이 될 것 같은 ... (BOOL) IS2
것 같다
그리고 그 각각에 대해
, 나는 전체로 확장하는 매크로 원하는 프리 컴파일러 매크로 확장을 잘 사용하지만 isMacro (...) 부분을 구현하는 방법을 잘 모르겠습니다. (구체적으로, 컴파일 전에 완전한 기능으로 확장되는 ...).--- 업데이트 :
방법은 모두 동적으로 계산되지만, 모든 일반적인 '이다'.
저는 열거 형 값에 대해 단일 변수를 테스트하고 동 일한지 여부를 결정합니다. 동적이기 때문에 @synthesize 할 수 없습니다. 나는 편의상 @property에 모든 것을 가지고있다. 저는 단지 @synthesize와 같은 것을 원합니다. 모든 것을 나열하고 각 isXXX 메소드에 대한 동적 응답을 생성 할 수 있습니다.
또한 올바른 열거 형 값인지 확인하기 위해 사전 컴파일 검사가 없기 때문에 isCheck : (opMode) 모드를 실행하고 싶지 않습니다.
모든 함수는 다음 형식으로되어 있습니다.
-(BOOL) isTurtle { return operationMode == Turtle; }
핵심은 간단하게 속성으로 사용하기를 원합니다. 따라서, 나는 다음과 같은 것을 원하지 않는다 : (opMode) 모드, 어디서 지정해야 하는가 BOOL res = [obj is:Tutle];
이것은 C++, Objective-C 또는 C의 경우입니까? 여기에 세 가지 언어를 모두 태그했습니다. – templatetypedef
실제로 무엇을하고 싶습니까? '- (BOOL) is1 {...}, - (BOOL) is2 ...'는 유효한 C 코드가 아닙니다. 왜 그렇게 평가되는 매크로를 원합니까? –
@David : 사실, 당신은 Objective-C에 있습니다. 언어로 작업하는 경우 해당 언어에 태그를 지정하십시오. 태그가 적용될 수 있다고 생각하기 때문에 다른 언어에는 태그를 지정하지 마십시오. – Puppy