【问题标题】:Displaying image specific to NSString value显示特定于 NSString 值的图像
【发布时间】:2013-02-10 04:06:09
【问题描述】:

如果调用了特定值,我会尝试发布特定图像,我的理解是这不起作用,因为 NSNumber 没有正确转换为 NSString,但我不确定这是否是问题所在。通过使用NSLog,我看到数据是通过的,比如一个评分是4.5,这种情况下我想显示四星半,但是图片不贴。我已经验证了视图已链接,并且所有内容都已连接,但没有骰子。代码如下。非常感谢您的反馈!

- (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];
}

【问题讨论】:

    标签: xcode xcode4 nsstring nsnumber


    【解决方案1】:

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

    另外,您可能会考虑在您返回的值之后命名您的 png 文件。然后你可以这样做:

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

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

    【讨论】:

    • 确认!如果我没记错的话,一个常见的问题是:“isEqualToString”与“==”......我很傻,我应该知道“isEqualToString”可能会解决这个问题!谢谢你的时间:)
    • @greg23af 如果您对答案感到满意,请使用左侧的复选框进行标记。 (i.stack.imgur.com/uqJeW.png)
    • 另外,你应该更新到最新版本的 Xcode,这应该会产生一个警告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    相关资源
    最近更新 更多