旧学校感觉文本一次出现一封信

时间:2013-03-17 19:36:01

标签: iphone ios nstimer

好吧,正如标题所说,我正在尝试创建一个旧的学校类型的应用程序。我的意思是计算机编程绿色为黑色,带有文本(编程)(如终端/ windows程序输入),我试图让我的字符串一次显示在屏幕上一个字母。 所以我决定尝试一个例子,这是我的代码,任何建议都会很棒! :)

    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显示数组的每个项目,任何更简单和更好的方法都会受到赞赏!

感谢

编辑:谢谢Hypercube我将我的代码更改为:

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

但是,我仍然收到此错误并发出警告: 'NSString'没有可见的@interface声明选择器'subStringWithRange' 并且警告'NSmakeRange'对C99无效

感谢任何帮助,谢谢:)

1 个答案:

答案 0 :(得分:0)

这是奇怪的具体,因为像一周前我写了一些东西来直观地模拟点阵打印机,它面临同样的问题。

我完全忘记了字符数组,因为无论如何这都是字符串,只保留一个NSString remainingBuffer对象。 NSTimer曾说过打印一个字符的时间,如果缓冲区不是空的,请从中读取第一个字符,打印字符,然后从缓冲区中删除第一个字符,如下所示:

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

如果NSString设计正确,则不应为文本分配任何新数据,而只返回一个NSString,其内部指针指向其字符数组的字符长度大于旧字符串。< / p>

每当您需要告诉控制台打印某些内容时,只需附加到remainingBuffer

即可

快乐的编码!