0

_schedule.gamesスケジュールをループするときに、各ゲームで Game プロパティの対戦相手を表示したいオブジェクトの配列があります。

    int x = 0;
    for (int i = 0; i < [_schedule.games count]; i++)
    {
        Game *game = [_schedule.games objectAtIndex:i];
        game.opponent = ((Game *) [_schedule.games objectAtIndex:i]).opponent;
        UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, 0, 100, 100)];

        [button setTitle:[NSString stringWithFormat:@"%@", game.opponent] forState:UIControlStateNormal];

        [_gameScrollList addSubview:button];

        x += button.frame.size.width;

    }
4

1 に答える 1

1

1.

    Game *game = [_schedule.games objectAtIndex:i];

配列内のゲームインスタンスを提供するため、プロパティを再度割り当てる必要はありません

game.opponent = ((Game *) [_schedule.games objectAtIndex:i]).opponent;

game.opponentは配列オブジェクト プロパティにある値を持っているため、直接呼び出すことができますgame.opponent

2.

[NSString stringWithFormat:@"%@", game.opponent]game.opponent文字列なので、再度型キャストする必要はありませんNSString

したがって、メソッドは次のようになります

int x = 0;
for (int i = 0; i < [_schedule.games count]; i++)
{
    Game *game = (Game *)[_schedule.games objectAtIndex:i];
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, 0, 100, 100)];
    [button setTitle:game.opponent forState:UIControlStateNormal];
    [_gameScrollList addSubview:button];
    x += button.frame.size.width;
}
于 2013-08-19T05:50:14.623 に答える