2011-01-30 8 views
1

私は現在このような文字列の部分を見ています。私はアポストロフィUnicharの比較の問題

に来たときに

  if (thisChar == 'a') 
      [self a]; 

     else if (thisChar == 'b') 
      [self b]; 

     else if (thisChar == 'c') 
      [self c]; 

.........

 else if (thisChar == '0') 
     [self zero]; 

    else if (thisChar == '1') 
     [self one]; 

    else if (thisChar == '2') 
     [self two]; 

    else if (thisChar == '3') 
     [self three]; 

.........

  else if (thisChar == '.') 
     [self period]; 

    else if (thisChar == ',') 
     [self comma]; 

    else if (thisChar == '?') 
     [self qmark]; 

問題はしかし起こります

else if (thisChar == ''') 
     [self three]; 

私がしたいのは '(アポストロフィー)記号ですが、それは私にはできません。私はその理由を知っていますが、私はその方法を知らない。これが助けになるのでしょうか?

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"]; 

unichar apostrophe = [apostropheString characterAtIndex:0]; 

isEqualToStringを使用できますか?

if ([apostrophe isEqualToString: thisChar]) 

ご協力いただければ幸いです。


私は次のようにして周りに道を見つけました。

1)。 1文字のアポストロフィを持つNNStringを作成する

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"]; 

2)。それはゼロインデックスで、インデックスは0

unichar app = [apostropheString characterAtIndex:0]; 

3)で一つだけの文字があるとして、それは「アプリ」と呼ばれるのunicharに変換するには、Get。 「thisChar」は同じである場合、私はそれから言う「アプリ」実行「qmark」

else if (thisChar == app) 
     [self qmark]; 

に私はこれが同じ問題を持つ人のために役立ちます願っています!

+0

私はこれを回避する方法を見つけたことを心配しないでください!情報の編集を表示します。 –

+2

''\' ''を使用できませんか? – Gabe

答えて

3

バックスラッシュでアポストロフィをエスケープする必要があります。'\''

+0

それは動作します!ありがとう、私はそれがより短いので私の方法よりも良いと思います。 –