0

こんにちは、次のコードがあります。

if(_deviceSegmentCntrl.selectedSegmentIndex == 0)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string01"];
}
if(_deviceSegmentCntrl.selectedSegmentIndex == 1)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string02"];
}
if(_deviceSegmentCntrl.selectedSegmentIndex == 2)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string03"];
}

NSString *deviceType = [[NSString alloc] initWithFormat:_deviceSegmentCntrl];

ユーザーがセグメント化されたコントロールで選択した文字列を NSString に出力させたいと思っています。

選択したインデックスを反映するように initWithFormat: を追加するにはどうすればよいですか?

乾杯

4

3 に答える 3

2

まず、NSStringは非常に一般的であるため、インスタンス化を大幅に簡素化するための省略形があります。

deviceOne = @"string01";

と同じ結果になります

deviceOne = [[NSString alloc] initWithFormat:@"string01"];

さて、あなたが何を達成したいのか正確にはわからないので、私が球場にあると思ういくつかのことについて言及します。

コントロールに表示されている文字列とまったく同じ文字列が必要な場合は、次を使用します。

NSString deviceType = [_deviceSegmentCntrl titleForSegmentAtIndex:_deviceSegmentCn.selectedSegmentIndex];

より複雑な文字列が必要な場合は、次のstringWithFormatようにクラスメソッドを使用できます。

NSString *deviceType = [NSString stringWithFormat:@"%@ - %@", deviceOne, [_deviceSegmentCntrl titleForSegmentAtIndex:_deviceSegmentCn.selectedSegmentIndex]];

deviceOneは投稿されたコードからのものです。

于 2012-06-23T21:08:01.597 に答える
0
if(_deviceSegmentCntrl.selectedSegmentIndex == 0)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string01"];
}
if(_deviceSegmentCntrl.selectedSegmentIndex == 1)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string02"];
}
if(_deviceSegmentCntrl.selectedSegmentIndex == 2)
{
    deviceOne = [[NSString alloc] initWithFormat:@"string03"];
}

NSString *deviceType = deviceOne;

これはあなたがやろうとしていることですか?作成した文字列を表示するだけですか?その場合、なぜ deviceType 文字列が必要なのですか?

于 2012-06-23T21:12:10.203 に答える
0

次のものが必要なようです。

int myIndex = _deviceSegmentCntrl.selectedSegmentIndex;
NSString *deviceType = [[NSString alloc] initWithFormat:@"%d",myIndex];

セグメント化されたコントロールに 3 つのオプションしかないと仮定すると、deviceType は、選択したインデックスに応じて文字列 "0"、"1"、または "2" の NSString 変数になります。

使い終わったら必ず deviceType を解放してください。

あなたのコメントに従って編集 -

deviceType 文字列に deviceOne 文字列を含めたい場合は、次の操作を実行できます。

NSString *deviceType = [[NSString alloc] initWithFormat:@"%@",deviceOne];

または、選択したセグメント化されたコントロール ボタンからのテキストが必要な場合は、次の方法が役立ちます。

int myIndex = _deviceSegmentCntrl.selectedSegmentIndex;
NSString *segmentString = [_deviceSegmentCntrl titleForSegmentAtIndex:myIndex];
NSString *deviceType = [[NSString alloc] initWithFormat:@"%@",segmentString];
于 2012-06-23T21:05:20.943 に答える