作成した文字列から (xcode 4.5.2 を使用)
- (void)viewDidLoad{
myList = [[NSArray alloc] initWithObjects:@"x",@"y",@"z", nil];
}
そしてもちろん:
@property (strong, nonatomic) IBOutlet UILabel *labelField_x;
@property (strong, nonatomic) IBOutlet UILabel *labelField_y;
@property (strong, nonatomic) IBOutlet UILabel *labelField_z;
IBAction 内で、配列から正しいキーを選択するだけで、使用するラベルを文字列から選択できるようにしたいと考えています。if または BOOL ステートメントを実行して自分自身を繰り返す代わりに。フォームの例私はこれを持っています:
- (IBAction)buttonPressed:(UIButton *)sender;
{
if (is_x){
NSString *digit = sender.currentTitle;
if (!pressedDecimal){
labelField_x.text = [labelField_x.text stringByAppendingString:digit];
}else if (count <= 1){
labelField_x.text = [labelField_x.text stringByAppendingString:digit];
}
.
.
.
}
else if (is_y){
NSString *digit = sender.currentTitle;
if (!pressedDecimal){
labelField_y.text = [labelField_y.text stringByAppendingString:digit];
}else if (count <= 1){
labelField_y.text = [labelField_y.text stringByAppendingString:digit];
}
.
.
.
}
else if (is_z){
NSString *digit = sender.currentTitle;
if (!pressedDecimal){
labelField_z.text = [labelField_z.text stringByAppendingString:digit];
}else if (count <= 1){
labelField_z.text = [labelField_z.text stringByAppendingString:digit];
}
.
.
.
}
}
ご覧のとおり、場所や UILabel の方向、またはラベル ( labelField_x, labelField_y, labelField_z ) を指しているものを変更するだけでなく、同じコードで毎回自分自身を繰り返します。私の質問は、最後の文字列 (x、y、z) のみを変更し、作成した一連の配列から呼び出して、使用するラベルを伝える方法があるかどうかです。
私はこれを試しましたが、もちろんうまくいきませんし、正しい答えに近いものではありませんが、これが私が望むものをよりよく説明できることを願っています(悪いコーディングについては事前に申し訳ありません):
labelField_@"%@".text,[myList 0] = [labelField_@"%@".text,[myList 0] stringByAppendingString:digit];
ありがとうございました。