tracifycray tracifycray - 3 months ago 16
iOS Question

Control may reach end of non-void function error if-statement

I'm getting the error Control may reach end of non-void function on this code:

- (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;
}
}


Why?

Answer

Because when your all if condition fails, you are not returning anything from the function.

Also multiple return statement in a function is not a good practice.

Do it like:

- (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;
}
Comments