0

なぜこれが機能しないのですか?

NSString *username = [[GKLocalPlayer localPlayer] alias];

random(); { 
    int text = rand() % 4;
    switch (text) {
        case 0: mainTextController.text = username,@"LEOONS"; break;
        case 1: mainTextController.text = username,@"AAIING"; break;
        case 2: mainTextController.text = username,@"AALBES"; break;
        case 3: mainTextController.text = username,@"AALDIJK"; break;


        default:
        break;        }
}

さまざまな設定で試しましたが、機能しません

4

3 に答える 3

5

問題はmainTextController.text = username,@"LEOONS";です。カンマは、Objective-C 文字列オブジェクトを連結しません (レコードの C 文字列も連結しません)。つまり、次のとおりです。

mainTextController.text = [username stringByAppendingString:@"LEOONS"];

(コンマが C でどのように機能するかについての詳細情報: http://en.wikipedia.org/wiki/Comma_o​​perator。この場合、に設定textusernameてから評価していると思いますが、の結果を使用していません@"LEOONS"。)

于 2012-06-10T15:18:07.823 に答える
3

-stringByAppendingString:andyvn22 が言ったように、 2 つの文字列を結合するには を使用する必要があります。あなたの問題は、次のようにもっとうまく解決できることを付け加えたいと思います。

NSString *username = [[GKLocalPlayer localPlayer] alias];
NSArray *randomAddons = [NSArray arrayWithObjects:
                         @"LEOONS",
                         @"AAIING",
                         @"AALBES"
                         /* Add as many as you want here.... */, nil];
int randomIndex = arc4random() % [randomAddons count];
mainTextController.text = [username stringByAppendingString:[randomAddons objectAtIndex:randomIndex]];

( については、こちらを参照してくださいarc4random())

于 2012-06-10T15:24:25.190 に答える
2

多分あなたは、よりランダムで、より将来の証拠になりたいと思っていました:-)

NSString *username = [[GKLocalPlayer localPlayer] alias];
int text = arc4random_uniform(4); //Don't do this: rand() % val or arc4random() % val
switch (text) {
    case 0: mainTextController.text = [NSString stringWithFormat:@"%@ %@ ",username,@"LEOONS"]; break;
    case 1: mainTextController.text = [NSString stringWithFormat:@"%@ %@ ",username,@"AAIING"]; break;
    case 2: mainTextController.text = [NSString stringWithFormat:@"%@ %@ ",username,@"AALBES"]; break;
    case 3: mainTextController.text = [NSString stringWithFormat:@"%@ %@ ",username,@"AALDIJK"]; break;
    default:
        break;
}

しかし、より良いでしょう:

NSMutableArray* names = [[NSMutableArray alloc] init];
[names addObject:@"LEOONS"];
[names addObject:@"AAIING"];
[names addObject:@"AALBES"];
[names addObject:@"AALDIJK"];

NSString *username = [[GKLocalPlayer localPlayer] alias];
int text = arc4random_uniform([names count]); //again use arc4random_uniform
mainTextController.text = [NSString stringWithFormat:@"%@ %@ ",username,[names objectAtIndex:text]];
于 2012-06-10T15:26:12.113 に答える