3

このコードでは、コントロールが非 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;
    }
}

なんで?

4

5 に答える 5

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;
}
于 2013-11-09T11:02:48.597 に答える
2

Midhun MP には、あなたの答えとより良いコード スタイルがあります。ネストされたすべてのelse-ifをswitch-statementに置き換えることを強くお勧めします.else-ifを避けることができれば、実際には必要ありません...

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
       NSInteger count = 0;
       switch (changeData.selectedSegmentIndex) 
            {
           case 0:
               count = self.tweets.count;
               break;
           case 1:
               count = self.tweets1.count;
               break;
           case 2:
               count = self.tweets2.count;
               break;
           default:
               break;
            }
    return count;
}
于 2013-11-09T11:10:34.090 に答える
0
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSInteger count = 0;
    if (changeData.selectedSegmentIndex == 0) {
        count = self.tweets.count;
    } else if (changeData.selectedSegmentIndex == 1) {
        count = self.tweets1.count;
    } else {
        count = self.tweets2.count;
    }
   return count;
}

また

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
   {
         NSInteger count = 0;
     if (changeData.selectedSegmentIndex == 0) {
        count = self.tweets.count;
     } else if (changeData.selectedSegmentIndex == 1) {
        count = self.tweets1.count;
     } 
     else if (changeData.selectedSegmentIndex == 2){
            count =  self.tweets2.count;
     }
     return count;
   }
于 2013-11-09T11:03:23.070 に答える