x라는 BOOL 인스턴스 변수가있는 클래스 인스턴스 집합이 있습니다. 버튼을 클릭하면 메서드를 트리거 한 버튼과 관련된 인스턴스를 제외한 모든 인스턴스에 대해 x를 NO로 설정해야합니다. 종류가 라디오 버튼이 작동하는 것과 같습니다.어떤 버튼을 기반으로 인스턴스 변수 설정/재설정 UIButton 선택자 호출
변수에 대한 x의 모든 인스턴스를 NO로 설정하는 것은 쉽습니다. 예를 들어 cInstance.x를 YES로 설정하는 방법을 결정하는 데 도움이 필요합니다. myMethod는 많은 다른 버튼에 의해 사용되며 다른 인스턴스와 관련됩니다.
선택자가 호출하는 세 가지 별도의 메소드를 사용하여 작성할 수 있지만 잘못된 프로그래밍은 소리를 지르지 않습니다.
[myButtonA addTarget:self action:@selector(myMethodA:) forControlEvents:UIControlEventTouchUpInside];
[myButtonB addTarget:self action:@selector(myMethodB:) forControlEvents:UIControlEventTouchUpInside];
[myButtonC addTarget:self action:@selector(myMethodC:) forControlEvents:UIControlEventTouchUpInside];
- (void)myMethodA:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
aInstance.x = YES;
}
- (void)myMethodB:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
bInstance.x = YES;
}
- (void)myMethodC:(id)sender {
NSArray *objects = [NSArray arrayWithObjects:aInstance, bInstance, cInstance, dInstance, eInstance, nil];
int i = [objects count];
while (i--) {
MyClass *selectedInstance = [objects objectAtIndex:i];
selectedInstance.x = NO;
}
cInstance.x = YES;
}
지금 내가 NO 모든 X 변수를 재설정 할 수있는 새로운 방법을 만들 수 있다고 가정하고 하나 개의 방법은 총을 필요로한다 일의 YES 그러나 이런 종류의에 특정 변수를 설정 각각의 버튼에 대해 별도의 방법을 .