1

我有很多基于按钮字符串值的切换语句(例如将箭头图像移动到 UIButton 的坐标)。我意识到我的代码中有很多重复。我想到的一件事是例如使用实际的“switch”函数,但不幸的是它只使用 int 作为切换变量类型而不是字符串。

这是我正在寻找改进的代码示例:

-(void)initAperture{

//Set
if ([[[self dataObject] logAperture] isEqualToString:@"dark"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureDark
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"cloudy"]) {
    [self moveImageView:selectorAperture
             toUIButton:buttonApertureCloudy
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"sunny"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureSunny
               animated:NO];        
} 
if ([[[self dataObject] logAperture] isEqualToString:@"pinhole"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonAperturePinhole
               animated:NO];
} 

}

感谢任何改进建议或最佳实践。

4

1 回答 1

5

NSDictionary在您的键是这些NSString对象并且您的对象是对象的地方使用UIButton

然后将您的if逻辑替换为:

[self moveImageView:selectorAperture toUIButton:[_myDictionary objectForKey:[[self dataObject] logAperture] animated:NO]];

我只是用指尖输入的,所以我不确定它是否会编译......但我认为我的例子“足够好”。

于 2012-05-01T17:46:37.973 回答