0

スイッチに応じて NSData を作成しようとしていますが、メソッドにオプションを追加するのに問題がありますappendBytes。NSStringtestを追加すると、エラーが発生します。

例:

- (void)selectCenterJustification:(int)option
{
    NSMutableData *data;
    NSString *test;
    switch (option)
    {
        case 0:
            test = @"\x0";
            break;
        case 1:
            test = @"\x1";
            break;
        case 2:
            test = @"\x2";
            break;
    }
    // does not work because of "test"
    [data appendBytes:"\x1b" "a", test length:3];

    // working
    [data appendBytes:"\x1b" "a" "\x1" length:3];
}

どうすればこれを行うことができますか?

4

1 に答える 1

3
NSMutableData *data = [NSmutableData data];
NSString *test = nil;

switch (option) {
    case 0:
        test = @"\x0";
        break;
    case 1:
        test = @"\x1";
        break;
    case 2:
        test = @"\x2";
        break;
    default:
        NSLog(@"[justification]: unknown option");
        break;
}
if (test) {
    [data appendBytes:"\x1b" "a" length:2];
    [data appendBytes:[test cStringUsingEncoding:NSASCIIStringEncoding] length:1];
}

アップデート

C文字列が必要なようです。

于 2013-08-14T12:54:45.783 に答える