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

han*_*Dev 1 iphone objective-c conditional-statements ios

什么是更好的编码方式?有一些条件代码检查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];
}
Run Code Online (Sandbox Code Playgroud)

bba*_*art 5

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

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