设置为 UITextView 的文本被多次设置

Text being set to a UITextView is being set multiple times

我有一个名为 DictionaryConsole 的 UITextView。每 0.05 秒,根据以下 switch 语句为其设置文本:

 switch ((DictionaryLine*100)/NumberofWordsTilEnd) {
    case 10:
        NewLine = [NSString stringWithFormat: @"Attack is Now 10 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 25:
        NewLine = [NSString stringWithFormat: @"Attack is Now 25 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 50:
        NewLine = [NSString stringWithFormat: @"Attack is Now 50 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 75:
        NewLine = [NSString stringWithFormat: @"Attack is Now 75 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 80:
        NewLine = [NSString stringWithFormat: @"Attack is Now 80 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 90:
        NewLine = [NSString stringWithFormat: @"Attack is Now 90 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    case 95:
        NewLine = [NSString stringWithFormat: @"Attack is Now 95 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
    case 98:
        NewLine = [NSString stringWithFormat: @"Attack is Now 98 Percent Complete"];
        NewLine2 = [NewLine stringByAppendingString:@"\n"];
        DictionaryConsole.text = [NewLine2 stringByAppendingString:DictionaryConsole.text];
        break;
    default:
        break;


}

这是NSTimer:

 Dictionary = [NSTimer scheduledTimerWithTimeInterval:0.05 
                                               target:self     
                                             selector:@selector(DictionaryAttack) 
                                             userInfo:nil 
                                              repeats:YES];

每次调用 -(void)DictionaryAttack 时,都会执行该 switch 语句。 Dictionary Line是一个int,在-(void)DictionaryAttack中加1。字符串进入 DictionaryConsole(UITextView) 没有问题。但我的问题是 NewLine 字符串的 33 是​​ "printed" 到文本视图。但是,我只希望一个字符串是 "printed"。我做错了什么?

您正在尝试除以整数。结果将是一个截断的数字,可能多次适合您的开关盒。例如:10.0 将截断为 1010.1 也会截断,因此您的开关 case 10 代码将执行多次。

What is the behavior of integer division?