もちろん、そのようなものを単純化することもできます。しかし、文脈が正確に何であるかは完全には明らかではありません。
配列にすべての画像ビューがある場合、次のようなことができます。
// Assume an NSArray called imageViews exists with all the UIImageView instances in it.
for (UIImageView *imageView in imageViews) {
imageView.image = [UIImage imageNamed:img21];
}
画像ビューがまだ配列になく、実際に A016、A017 などと呼ばれている場合は、コード設計を変更することをお勧めします。このようなことは決して良い考えではありません。その結果、コードの保守が難しくなります。これがある種の画像テーブルである場合は、最初に画像ビューを配列に入れてみてください。
そうは言っても、そのような変数を配列に入れる方法はあります。それらが @properties または ivar として宣言されている場合、次のようなことができます。
NSMutableArray *imageViews = [NSMutableArray arrayWithCapacity:20];
for (int i = 0; i < 20; i++) {
NSString *variableName = [NSString stringWithFormat:@"A0%d", i];
UIImageView *imageView = [self valueForKey:variableName];
[imageViews addObject:imageView];
}
その後、配列を ivar として保存し、上記と同じことを行うことができます。
よりハードコードされたバージョンは、画像ビューを自分で配列に入れるだけです。
NSArray *imageViews = [NSArray arrayWithObjects:..., A016, A017, A018,..., nil];
しかし、そのようなインデックス付き変数名を使用しないことを強くお勧めします。