iphone - 如何更有效地编写一些条件代码?

标签 iphone ios objective-c conditional-statements

编码以下内容的更好方法是什么?有一些条件代码可以检查reviewStarsNumber的int值,然后根据结果显示适当的uiimage。目前似乎很长,我在想可以简化它。

谢谢你的帮助

  if ([reviewsStarsNumber intValue] == 0) {
    UIImage *img = [UIImage imageNamed:@"hstars-0.png"];        
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 10) {
    UIImage *img = [UIImage imageNamed:@"hstars-0_5.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 20) {
    UIImage *img = [UIImage imageNamed:@"hstars-1_0.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 30) {
    UIImage *img = [UIImage imageNamed:@"hstars-1_5.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 40) {
    UIImage *img = [UIImage imageNamed:@"hstars-2_0.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 50) {
    UIImage *img = [UIImage imageNamed:@"hstars-2_5.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 60) {
    UIImage *img = [UIImage imageNamed:@"hstars-3_0.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 70) {
    UIImage *img = [UIImage imageNamed:@"hstars-3_5.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 80) {
    UIImage *img = [UIImage imageNamed:@"hstars-4_0.png"];
    [self.reviewStars setImage:img];
}

if ([reviewsStarsNumber intValue] == 90) {
    UIImage *img = [UIImage imageNamed:@"hstars-4_5.png"];
    [self.reviewStars setImage:img];
}
if ([reviewsStarsNumber intValue] == 100) {
    UIImage *img = [UIImage imageNamed:@"hstars-5_0.png"];
    [self.reviewStars setImage:img];
}

最佳答案

如果您重命名图像,则可以执行以下操作:

NSUInteger number = [reviewsStarsNumber intValue]
NSString *imageName = [NSString stringWithFormat:@"hstarts-%d.png", number];
UIImage *img = [UIImage imageNamed:imageName];
[self.reviewStars setImage:img];

关于iphone - 如何更有效地编写一些条件代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526417/

相关文章:

iphone - iPhone 有剪贴板 API 吗?

iphone - 适用于iPhone应用程序的iOS 3.0+兼容性

ios - 应用程序在后台 Swift Xcode 时不播放音乐

objective-c - 单例模式实现

ios - (WeeLoader) 'UITapGestureRecognizer' 未在此范围内声明

iphone - 用 Quartz 2D 绘制中文字体字形?

iphone - 在 ios 上通过短信发送图片

ios - 从 CoreData 中检索最后 N 个唯一名称的谓词。

iphone - Facebook SDK 3.1 上的 iOS 6 native 支持问题

iphone - 我的自定义类在 UIViewController 内部损坏,无法跟踪它,没有编译器错误