我有一个选择器 View ,我希望其中的内容是飞机的尾号。我使用这段代码,但收到警告 Loop will run at most, (loop increment never executed)
,然后收到错误 control may each end of non-void function。
这里有什么问题?
代码:
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
for (NSInteger i = [[NSUserDefaults standardUserDefaults]integerForKey:@"planeNum"]; (i = 0); i--) {
NSString *dTailNumber = [NSString stringWithFormat:@"%@", [[NSUserDefaults standardUserDefaults]objectForKey:[NSString stringWithFormat:@"Plane%liTailNumber", i]]];
return dTailNumber;
}
}
最佳答案
你收到警告的原因
Loop will run once at most, (loop increment never executed)
是因为你在循环体中有一个无条件的return
。在第一次执行循环时,它将在达到循环增量之前返回
方法。
你得到的原因
control may reach the end of a non-void function
是因为不能保证此函数会返回任何内容。如果循环执行了 0 次怎么办?然后该方法永远不会返回任何东西,这是不正常的,因为它被声明为返回一个 NSString
。
关于objective-c - 循环最多运行一次,(循环增量从不执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586891/