3

NSMutableArrayいっぱいでUILabels、 をステップ実行してそれらのテキスト属性を変更したいと考えていますarrayUILabels配列の外でテストしたので、ラベルに割り当てたいテキストを生成する関数または関数に問題がないことはわかっていますが、正常に動作します。UILabelが配列内にある間、変更するテキスト属性を取得できないようです。

以下のように配列を設定しました。

NSMutableArray *scrambledWordLabelArray;

-(void)initUIArrays {
    [scrambledWordLabelArray insertObject:ScrambledWordLabel1 atIndex:0];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel2 atIndex:1];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel3 atIndex:2];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel4 atIndex:3];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel5 atIndex:4];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel6 atIndex:5];
}

次に、ビューがロードされると、ラベルを他の関数によって生成された文字列に変更する必要があります。

- (void)viewDidLoad
{
    [super viewDidLoad];   
    [self initUIArrays];

    currentGameList = [self GetWordList:[self LoadWordlist]];

    for (NSUInteger i = 0; i < [currentGameList count]; i++) {

この部分では、2つの解決策を見つけましたが、どちらもうまくいきませんでした...

解決策 1:

         UILabel *temp = [scrambledWordLabelArray objectAtIndex:i];
         temp.text = [self ScrambleWord:[currentGameList objectAtIndex:i]];

解決策 2:

         [[scrambledWordLabelArray objectAtIndex:i] setText:[self ScrambleWord:[currentGameList objectAtIndex:i]]];
    }
}

私は何時間も修正せずに調査とデバッグを行ってきたので、どんな助けも大歓迎です:(

4

1 に答える 1

2

scrambledWordLabelArray を初期化しません。次の行を追加する必要があります。

scramledWordLabelArray = [[NSMutableArray alloc] init];

余談ですが:

currentGameList と scrambledWordLabelArray は常に同じ数の要素を持つというのは本当ですか? 「for」ループは currentGameList の要素数に基づいていますが、同じインデックスを使用して scrambledWordLabelArray から要素を取得しています。

投稿した両方のソリューションは、基本的に同じコードです。

于 2012-10-14T06:16:20.117 に答える