控制可能会到达非空函数错误if-statement

tra*_*ray 3 xcode objective-c uitableview ios

我收到错误控件可能会在此代码上达到非void函数的结尾:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (changeData.selectedSegmentIndex == 0) {
        return self.tweets.count;
    } else if (changeData.selectedSegmentIndex == 1) {
        return self.tweets1.count;
    } else if (changeData.selectedSegmentIndex == 2) {
        return self.tweets2.count;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么?

Mid*_* MP 6

因为当你的所有if条件都失败时,你不会从函数中返回任何东西.

函数中的多个return语句也不是一个好习惯.

这样做:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    int count = 0;
    if (changeData.selectedSegmentIndex == 0)
    {
        count = self.tweets.count;
    }
    elset if (changeData.selectedSegmentIndex == 1)
    {
        count  = self.tweets1.count;
    }
    else if (changeData.selectedSegmentIndex == 2)
    {
        count  = self.tweets2.count;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)