1
我有一組類實例,它們有一個名爲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;
}
現在,我想我可以創建重置所有變量x爲NO的新方法,然後對每個設置一個特定的變量爲YES但是這種事情按鈕一個單獨的方法應該只需要一個方法總。