2013-02-25 65 views
0

如果特定的值被调用,我想发布一个特定的图像,这是我的理解这是不工作,因为NSNumber未正确转换为NSString,但我不确定是否这就是问题。通过使用NSLog,我发现数据正在通过,比如评分为4.5,在这种情况下,我想显示四星半,但图片不会发布。我已经证实视图已经连接起来,并且所有东西都连接起来了,但没有骰子。下面的代码。反馈非常感谢!显示特定于NSString值的图像

- (void) connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [self setString]; 

    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil]; 
    NSString *string1 = [dic objectForKey:@"name"]; 
    NSString *string2 = [[dic objectForKey:@"rating"]stringValue]; 

    NSLog(@"RATE STRING ---> %@", string2); 

    if (string2 == @"0") 
    { 
     UIImage *img = [UIImage imageNamed:@"zerorate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"1") 
    { 
     UIImage *img = [UIImage imageNamed:@"onerate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"1.5") 
    { 
     UIImage *img = [UIImage imageNamed:@"onehalfrate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"2") 
    { 
     UIImage *img = [UIImage imageNamed:@"tworate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"2.5") 
    { 
     UIImage *img = [UIImage imageNamed:@"twohalfrate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"3") 
    { 
     UIImage *img = [UIImage imageNamed:@"threerate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"3.5") 
    { 
     UIImage *img = [UIImage imageNamed:@"threehalfrate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"4") 
    { 
     UIImage *img = [UIImage imageNamed:@"fourrate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"4.5") 
    { 
     UIImage *img = [UIImage imageNamed:@"fourhalfrate.png"]; 
     [imageView2 setImage:img]; 
    } 
    if (string2 == @"5") 
    { 
     UIImage *img = [UIImage imageNamed:@"fiverate.png"]; 
     [imageView2 setImage:img]; 
    } 
     [[self myTableView] reloadData]; 
} 

回答

2

的值string2 == @"0"是未定义的。试试if ([string2 isEqualToString:@"0"])

此外,你可能会考虑命名你的png文件后,你回来的价值。然后,你可以只是做:

UIImage *img = [UIImage imageNamed:string2]; 
[imageView2 setImage:img]; 

如果这样做不能解决问题,什么在调试器中发生在你po string2?当你设置po img后会发生什么,当你po imageView2时会发生什么?

+0

Ack!一个常见的问题,如果我没有弄错:“isEqualToString”vs“==”.......我很愚蠢,我应该知道“isEqualToString”可能会解决这个问题!感谢您的时间:) – Greg 2013-02-25 03:57:44

+0

@ greg23af如果您发现答案令人满意,请使用左侧的复选框标记。 (http://i.stack.imgur.com/uqJeW.png) – 2013-02-25 04:00:23

+0

此外,你应该更新到最新版本的Xcode,它应该为此产生一个警告。 – 2013-02-25 04:01:17