변수 이름이 이미 정의되어 있는지 확인하고 싶습니다. nil
과 같은지는 상관하지 않습니다. 아직 정의되지 않은 변수를 정의하는 매크로에서이 변수를 사용합니다. 그러나 그것이 정의된다면, 매크로는 변수를 재정의하기보다는 변수를 설정하게됩니다 (실제로 컴파일러가 빌드를 방해합니다).변수 이름이 현재 방법에서 사용되고 있는지 확인하십시오.
#define newAnimation()\
if (/* variableName is being used */) {\
anim = [CABasicAnimation animation];\
} else {\
CABasicAnimation* anim = [CABasicAnimation animation];\
}
그런 매크로를 사용합니다.
newAnimation();
anim.keyPath = @"position.x";
anim.toValue = @10;
[self.namedSubview addAnimation:anim forKey:nil];
newAnimation();
anim.keyPath = @"position.y";
anim.toValue = @50;
[self.otherSubview addAnimation:anim forKey:nil];
참고 : 매크로가있는 부분은이 질문에 대한 내 사용 사례입니다. 대답은 방법 내에서 작동해야합니다.
달성하려는 목표는 무엇입니까? 당신의 더 큰 목표는 무엇입니까? –
@ JoshCaswell 방금 설명했습니다. – aleclarson
어떤 상황에서 변수가 선언되었는지 알 수 없습니까? –