2016-07-18 9 views
0

私はスイッチ内のifステートメントを使用したいと思いますが、私は期待される表現エラーを受け取り続けます。誰かが私にこの問題を解決するのを手伝ってもらえれば幸いです。IOSの期待される表現エラー

switch ([ApplicationModel getApplicationType]) { 
     case CSApplication: {} 
      break; 
     case RAApplication: 
     { 
      if (indexPath.row == FloorLevelIndex || indexPath.row == RoomIndex) 
      { 
       [cell setUserInteractionEnabled: YES];    
      } 
     } 
      break; 
     default: 
      break; 
    } 
+0

ケースの冒頭にブレースセットは必要ありません。 –

+0

エラーが発生しているラインはどれですか? – cjrieck

+0

@cjrieck if(indexPath.row == FloorLevelIndex || indexPath.row == RoomIndex)これは – AOY

答えて

3

FloorLevelIndexRoomIndexがタイプの場合、タイプと数値(したがってエラー)を比較することはできません。おそらく数字の表示が必要な場合や、NSIntegerの値で定義する場合

1

[ApplicationModel getApplicationType]はケースがサポートswtich有効なデータ型を返すことを確認します。

switch文で使用される変数は整数のみ、 変換可能整数(バイト、ショート、CHAR)することができ、文字列と列挙型

は、このようにする必要があります:

switch ([ApplicationModel getApplicationType]) { 
     case CSApplication: 
      break; 

     case RAApplication: 
      if (indexPath.row == FloorLevelIndex || indexPath.row == RoomIndex) 
      { 
       [cell setUserInteractionEnabled: YES];    
      } 
      break; 

     default: 
      break; 
    } 
+0

私はそれが有効なデータを返すと確信しています。 問題が定義されたFloorLevelIndexとRoomIndexにありました – AOY

0

私はちょうど私のXcodeでこのコードを試して、それは正常に動作します:

NSLayoutAttribute attr = NSLayoutAttributeLeft; 
switch (attr) { 
    case NSLayoutAttributeTop: {} 
     break; 
    case NSLayoutAttributeLeft: { 
     if (YES) { 
      NSLog(@"works"); 
     } 
    } 
     break; 
    default: 
     break; 
} 

したがって、switch文の構造は正しいです。

関連する問題