1

ビューが読み込まれたときにタイトルを付けたいボタンがたくさんあります。ボタンのタイトルは、その月の何曜日かによって異なります。したがって、すべてのボタンの名前を持つ配列を作成しました。私のコードは次のとおりです。

私のインターフェース:

@property (strong, nonatomic) IBOutlet UIButton *button1;
@property (strong, nonatomic) IBOutlet UIButton *button2;
@property (strong, nonatomic) IBOutlet UIButton *button3;
@property (strong, nonatomic) IBOutlet UIButton *button4;
@property (strong, nonatomic) IBOutlet UIButton *button5;
@property (strong, nonatomic) IBOutlet UIButton *button6;
@property (strong, nonatomic) IBOutlet UIButton *button7;
@property (strong, nonatomic) IBOutlet UIButton *button8;
@property (strong, nonatomic) IBOutlet UIButton *button9;
@property (strong, nonatomic) IBOutlet UIButton *button10;

私の実装:

@synthesize button1 = _button1;
@synthesize button2 = _button2;
@synthesize button3 = _button3;
@synthesize button4 = _button4;
@synthesize button5 = _button5;
@synthesize button6 = _button6;
@synthesize button7 = _button7;
@synthesize button8 = _button8;
@synthesize button9 = _button9;
@synthesize button10 = _button10;

NSArray *myArray = [NSArray arrayWithObjects: @"dummyButton", @"_button1", @"_button2", @"_button3", @"_button4", @"_button5", @"_button6", @"_button7", @"_button8", @"_button9", @"_button10", nil];

for (int i = varDefinedEarlier; i<=totalAmountOfNeededTitles; i++) {
     NSString *theTitleSting = [NSString stringWithFormat:@"%i",i];
     NSLog(@"arrayValue:%@", [myArray objectAtIndex:i]); //Works prints the button name (for example _button7)


    [[myArray objectAtIndex:i] setTitle:theTitleSting forState:UIControlStateNormal];
//The line above is where the app crashes. Everything else works just fine.
}

私に提供されたエラーは、「スレッド 1: シグナル SIGABRT

それに加えて、これはログが言うことです:

-[__NSCFConstantString setTitle:forState:]: インスタンス 0x14a48 2012-07-10 22:57:49.649 に送信された認識されないセレクタ: '-[__NSCFConstantString setTitle:forState:]: unrecognized selector sent to instance 0x14a48' * * * First throw call stack: (0x3774788f 0x3544c259 0x3774aa9b 0x37749915 0x376a4650 0xdc2f 0x31454c8b 0x314611e9 0x31461059 0x31460f3f 0x3146070b 0x31460503 0x31454aff 0x314547d5 0x314cd903 0x31547627 0x37fb8933 0x3771ba33 0x3771b699 0x3771a26f 0x3769d4a5 0x3769d36d 0x33e5c439 0x31449cd5 0xb7cf 0xb774) 例外をスローして終了します (lldb)

エラーは、アプリの魔女ボタンにタイトルを設定する必要があることを伝えようとする方法だと思いますが、配列の値を取得してボタン名として使用する方法がわかりません。

私は iPhone iOS 開発の初心者なので、答えが単純な場合はご容赦ください ;)

4

2 に答える 2