0

else ifXcodeは、私のコードの2番目のステートメントに「必要な式が必要です」と文句を言います。ここで見たコードの括弧を使用してみましたが、それは機能せず、現在どのような式が必要かわかりませんか?秒を追加するまでは正常else if に動作しますこれはおそらく基本的なObjectiveCのものであることに気付きますが、2つ以上の項目に対してifステートメントを実行したことがないので少し行き詰まっています

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{


if ([text1 isFirstResponder])return arrStatus.count;

else


   if ([text2 isFirstResponder]);return arrStatus2.count;

   else ///<<<<< wants an expected expression here


       if ([text3 isFirstResponder]);return arrStatus2.count;

 }
4

3 に答える 3

3

if2番目のステートメントに余分なセミコロンがあります。そのはず:if ([text2 isFirstResponder]) return arrStatus2.count;

PS。3日も同じ間違いを犯してifいます...ワンライナーでも中かっこを使用することを検討する必要があります。

于 2012-07-31T12:04:14.180 に答える
2

ifいくつかのステートメントの後に、偽のセミコロンがあります。

if ([text2 isFirstResponder]);   <--- here

それ以外は、コードのインデントが不十分であるため、if/else if行と同じ行にステートメントを配置するのをやめる必要があります。

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if ([text1 isFirstResponder])
        return arrStatus.count;
    else if ([text2 isFirstResponder])
        return arrStatus2.count;
    else if ([text3 isFirstResponder])
        return arrStatus2.count;
 }
于 2012-07-31T12:04:17.527 に答える
1

関数/メソッドは何か、この場合はNSIntegerを返す必要があります。ただし、コードにreturnステートメントがない可能性のある状況があります。最後に、ifステートメントが正しくない場合、何も返されません。

if ([text1 isFirstResponder]) {
   return arrStatus.count;
} else {
   if ([text2 isFirstResponder]) {
       return arrStatus2.count;
   } else {
        if ([text3 isFirstResponder]) {
           return arrStatus2.count;
        }
        // nothing will be returned here
        // you can return nil or actual 0
        // return nil;
        // return 0;
   }

}

于 2012-07-31T12:04:45.727 に答える