Web サービス呼び出しの結果を解析するクラスがあります。その結果に基づいて、別のクラスのメソッドを呼び出し、そのメソッドは 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];
}
}
これで、MyViewController クラスの setAlight メソッドに kBblue が送信されます。(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 に画像を設定しません。なんで?
編集
- 私はxibを使用しており、imageViewにはデフォルトの画像が割り当てられています。
- 私の接続はすべてxibで接続されており、すべて正しく見えます。
- 渡す文字列に空白はありません。
- 画像が正しく設定されている場合は非常に明白なので、画像が設定されていないことがわかります。