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

标签 objective-c error-handling uipickerview

我有一个选择器 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/

相关文章:

entity-framework - 在 Entity Framework 和存储库模式中处理数据库异常的位置

SwiftUI 分段选取器在单击时不会切换

objective-c - 使用 NSXMLParser delegate 解析两个文件

iphonesdk打印文档

asp-classic - 经典的 asp - response.redirect in a sub - 错误处理

ios - 第二个 View Controller 中的空 UIPickerView

iphone - 刷新/重新加载 uipicker

c++ - 使用 C++ 入口点让 SDL 在 OSX 上工作

ios - iOS通知可以推送文件吗

ajax - 使用ajax请求codeigniter处理数据库错误