设置为 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
将截断为 10
,10.1
也会截断,因此您的开关 case 10
代码将执行多次。
What is the behavior of integer division?
我有一个名为 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
将截断为 10
,10.1
也会截断,因此您的开关 case 10
代码将执行多次。
What is the behavior of integer division?