gpt4 book ai didi

objective-c - 如何使基于NSString的切换语句更加有效和可扩展?

转载 作者:行者123 更新时间:2023-12-01 18:00:44 25 4
gpt4 key购买 nike

我有很多基于按钮的字符串值的切换语句(例如,将箭头图像移动到UIButton的坐标)。我意识到我的代码中有很多重复。我想到的一件事是使用实际的“开关”功能,但不幸的是,它仅使用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];
}

}

任何改进的建议或最佳做法,不胜感激。

最佳答案

使用NSDictionary,其中您的键是这些NSString对象,而您的对象是UIButton对象。

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

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

我只是用指尖打了一下,所以我不确定它是否可以编译...但是我认为我的例子“足够好”。

关于objective-c - 如何使基于NSString的切换语句更加有效和可扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10401784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com