- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文の条件式について)
【解説】if文の条件式でNSString型の文字列を使う方法
このQ&Aのポイント
- iPhone OS 3.0、Xcode 3.1.3という環境でobjective-cをベースとしてiPhone向けアプリケーションを作る研究をしています。if文の条件式にNSString型で宣言した文字列を使うにはどうすればいでしょうか?
- NSString *startArea = [[NSString alloc] initWithFormat:@"pt.x > 224 && pt.y < 100"];というコードでstartAreaに代入されたpt.x > 224 && pt.y < 100という文字列をif文の条件式として使える方法を教えてください。
- if( startArea ){実行したい命令}という記述をしたところ、ビルドエラーは発生しませんでしたが条件が無視されてしまいました。他にコードの間違いがあるかもしれませんが、まずはこの内容で判断をお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
残念ながら、C言語系の言語では文字列をif文の条件式として実行時に「評価」することはできません。質問文にあるような記述では、if文は「startAreaというポインタ変数の値がNULLか否か」という意味になります。startAreaが何らかの文字列(オブジェクト)を指しているのであれば、必ず「真」と判定されてしまいます。 LispとかRubyとかの言語ならばevalという仕組み(リンク先を参照)を使って質問者さんが考えているようなことができるのですが、C言語系の場合は発想を変える必要があります。
お礼
ご回答ありがとうございます。 リンクまで張っていただき、とてもよく理解する事が出来ました。 今回のケースはどうしてもこうしなければいけないというよりも、できるものならやってみたいという内容なので、同じアルゴリズムを違う方法で試してみたいと思います。