11

2つのNSStringを連結する必要があります。以下のコードを記述しました:

NSString *reverseResult = [[NSString alloc] initWithFormat:@""];
NSString *zero = [[NSString alloc] initWithFormat:@"0"];
NSString *one = [[NSString alloc] initWithFormat:@"1"];
int modRes;
while (num != 0) {
    modRes = num;
    modRes = num % 2;
    if (modRes == 0)
        [reverseResult stringByAppendingString:zero];
    else
        [reverseResult stringByAppendingString:one];
    num = num / 2;
}

コードをデバッグすると、「stringByAppendingString」が必要なことを実行していないことがわかります(reverseResultはその行に到達しても@ ""のままです)。

コードに何か問題がありますか?

4

1 に答える 1

30

stringByAppendingStringは新しい文字列を返しますが、既存の文字列は変更しません。結果を変数に格納する必要があります。

于 2012-12-14T14:45:44.760 に答える