无法设置UIImageView

问题描述:

我有一个类来解析Web服务调用的结果。根据该结果,它调用另一个类中的方法,该方法应该更改UIImageView中的图像。但它不会树立形象,我不知道为什么。无法设置UIImageView

头等舱相关零件。 '服务器'值确实回来了'rb'。

#import "GetBBYprod.h" 
#import "MyViewController.h" 

static NSString *kAblue = @"A_blue.png"; 
static NSString *kBblue = @"B_blue.png"; 
static NSString *kCblue = @"C_blue.png"; 

@implementation GetBBYprod 
@synthesize vc; 

-(id)init { 
    if (self = [super init]) { 
     vc = [[MyViewController alloc] init]; 
    } 
    return self; 
} 

-(void)connectionDidFinishLoading:(NSURLConnection *)conn { 
    NSString *bbyProdString = [[NSString alloc] initWithData:bbyProdData encoding:NSUTF8StringEncoding]; 
    NSString *server = [bbyProdString substringToIndex:2]; 

    if ([server isEqualToString:@"rb"]) { 
    [vc setAlight:kBblue]; 
    } 
} 

因此,发送kBblue到MyViewController类中的方法setAlight。 (kBblue的值是“B_blue.png”

所以在我的MyViewController类,setAlight方法:

-(id)init { 
    if (self = [super init]) { 
     aImage = [[UIImageView alloc] init]; 
     bImage = [[UIImageView alloc] init]; 
     cImage = [[UIImageView alloc] init]; 
    } 
    return self; 
} 

-(void)setAlight:(NSString *)aValue { 
    NSLog(@"image name: %@", aValue); 
    [aImage setImage:[UIImage imageNamed:aValue]]; 
} 

这将成功登录“形象的名字:B_blue.png”所以我知道的数据是传递和方法被调用,但它不会将图像中的aImage UIImageView的。为什么呢?

编辑

  • 我使用的是厦门国际银行和T他为imageView分配了一个默认图像。
  • 我所有的连接都连接在xib中,它们都看起来正确。
  • 我传递的字符串中没有空格。
  • 我可以判断图像没有被设置,因为当它设置正确时,它对我来说非常明显。
+0

你确定在aValue的末尾没有空格吗?一个简单的测试就是做'''NSLog(@“image name:[%@]”,aValue);'''看看它是否真的在最后一个文件名字符之后。 – Remear

+0

你如何确认图像没有被设置? –

+0

也许是一个线程的东西?你只能从主线程中做UI事情。也许尝试[self performSelectorOnMainThread:@selector(setAlight :) withObject:kBblue waitUntilDone:NO]; –

你说你正在使用xibs,但你的alloc init'ing新aImage - 你应该使用IBOutlet中到您在IB做,而不是创建一个新的图像视图。

+0

不错,但仍然没有解决问题。不过谢谢。 – Selch

+0

@Selch,好吧,如果您的包中实际上有一个名为B_blue.png的图像,那么它应该可以正常连接IBOutlet。你摆脱了[[UIImageView alloc] init]语句吗?您是否尝试记录您的IBOutlet以查看它是否返回预期的对象? – rdelmar

如果您要在xib中创建UImageViews,那么在init中不要初始化它们。该框架将为您创建它们。只要确保您的UIImageViews已连接到.h文件中的正确IBOutlets

+0

好点但仍未解决问题。不过谢谢。 – Selch