循环最多运行一次,(循环增量从不执行)

Ben*_*783 4 error-handling objective-c uipickerview

我有一个选择器视图,我希望它中的东西是飞机的尾号.我使用这段代码,但是我得到警告Loop will run once 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

nhg*_*rif 19

你得到警告的原因

循环最多运行一次,(循环增量从不执行)

是因为你return在循环体中有一个无条件的.在第一次执行循环时,它将return在达到循环增量之前退出方法.


你得到的原因

控制可能会达到非空函数的末尾

是因为无法保证此功能能够返回任何内容.如果循环执行0次怎么办?然后该方法永远不会返回任何东西,这是不好的,因为它被声明为返回一个NSString.