0

これはばかげた初心者の質問だと思いますが、ボタンを押したときに配列から整数値を取得してラベルに表示しようとして、少なくとも 1 時間行き詰まりました。問題は、ラベルを表示するインデックスに関係なく、ラベルに「(null)」が表示され続けることです。NSArray オブジェクトの引用符も外してみました。NSArray 内のオブジェクトが整数であるか文字列であるかはそれほど重要ではありませんが、少なくともそれらを配列に入れる方法の構文を知りたいと思います。それが私の問題だと思うからです。そうでない場合は、別の方法を教えてください。

私のコード: (.h ファイル)

@property (strong, nonatomic) NSArray *redOneTeams;

(.m ファイル)

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        _redOneTeams = @[
                   @"4351",
                   @"4298",
                   ];
        }
    return self;
}

- (IBAction)saveBtn:(id)sender {
    _teamNumber.text = [[NSString alloc] initWithFormat: @"%@", [_redOneTeams objectAtIndex:0]];
}
4

2 に答える 2

0

したがって、ここにはいくつかのオプションがあります。

1-数値を数値として配列に直接入れます。

_redOneTeams = @[
               @4351,
               @4298,
               ];

これは、リテラル/数値として自動的に認識されます。これを行う場合は、次のように呼び出すことができます。

- (IBAction)saveBtn:(id)sender 
{
  _teamNumber.text = [[NSString alloc] initWithFormat: @"%i", [_redOneTeams objectAtIndex:0]];
}

2- もう 1 つのより複雑な方法ですが、NSString から数値をアンラップする方法を示します。

配列を NSString 要素で宣言したままにして、次のように NSString から値を取得します。

- (IBAction)saveBtn:(id)sender 
{
  _teamNumber.text = [[NSString alloc] initWithFormat: @"%i", [[_redOneTeams objectAtIndex:0] intValue]];
}

お役に立てれば

于 2013-03-05T03:54:55.997 に答える
0

あなたの問題には2つの可能性があります。

  1. ブレークポイントを設定して、initWithNibNameこのメソッドがトリガーされているかどうかを確認してください。どういうわけかこのメソッドが呼び出されていないように感じます。したがって、配列が設定されていません。
  2. が呼び出されない理由がわからない場合は、コードをメソッドinitWithNibNameにシフトできます。viewDidLoad

これらのことを試してみてください。おそらく問題が発生するでしょう。

于 2013-03-05T04:05:45.210 に答える