1

タイトルが示すように、古い学校のタイプのアプリを作成しようとしています。私はコンピュータープログラミングを黒地に緑で、(プログラミングの)テキスト(端末/ Windowsプログラム入力のように)で意味し、文字列を一度に1文字ずつ画面に表示しようとしています。だから私は例を試すことにしました。これが私のコードです。どんなアドバイスも素晴らしいでしょう! :)

    instructionsArray = [[NSMutableArray alloc] initWithObjects: nil];
    instructionsString = @"Lorem ipsum dolor sit er elit lamet, ...";

  for (int i = 1 ; i <= [instructionsString length]; i++) {
    [instructionsArray addObject:@"%@", [NSString stringWithFormat:[instructionsString characterAtIndex:i]]];
}

基本的に、この例の文字列がありました。instructionsString (単なる NSString) とこの MutableArray です。文字列を文字に変換して配列に変換し、NSTimer を使用して配列の各項目を表示するのが最も簡単だと思いました。より簡単で優れた方法があれば幸いです。

ありがとう

編集:ハイパーキューブに感謝します。コードを次のように変更しました:

            [Instructions.text stringByAppendingString:[remainingBuffer subStringWithRange: NSmakeRange(1, remainingBuffer.length - 1)]];

ただし、まだこのエラーと警告が表示されます: No visible @interface for 'NSString' declares the selector 'subStringWithRange' and a warning 'NSmakeRange' is invalid for C99

どんな助けでも感謝します:)

4

1 に答える 1

0

これは奇妙に具体的です.1週間前のように、同じ問題に直面しているドットマトリックスプリンターを視覚的にエミュレートする何かを書いたからです。

とにかくそれが文字列であるため、文字の配列を完全に忘れて、NSString remainingBufferオブジェクトを保持します。NSTimer が文字を出力する時間だと言うたびに、バッファーが空でない場合は、最初の文字を読み取り、文字を出力し、次のようにバッファーから最初の文字を削除します。

remainingBuffer = [remainingBuffer subStringWithRange: NSmakeRange(1, remainingBuffer.length - 1)];

正しく設計されていればNSString、テキストに新しいデータを割り当てるべきではありませんが、文字配列への内部ポインターが古い文字列よりも 1 文字長い NSString を返すだけです。

コンソールに何かを印刷するように指示する必要があるときはいつでも、remainingBuffer

ハッピーコーディング!

于 2013-03-17T19:48:31.583 に答える