• ベストアンサー
※ 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 ){実行したい命令}という記述をしたところ、ビルドエラーは発生しませんでしたが条件が無視されてしまいました。他にコードの間違いがあるかもしれませんが、まずはこの内容で判断をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

残念ながら、C言語系の言語では文字列をif文の条件式として実行時に「評価」することはできません。質問文にあるような記述では、if文は「startAreaというポインタ変数の値がNULLか否か」という意味になります。startAreaが何らかの文字列(オブジェクト)を指しているのであれば、必ず「真」と判定されてしまいます。 LispとかRubyとかの言語ならばevalという仕組み(リンク先を参照)を使って質問者さんが考えているようなことができるのですが、C言語系の場合は発想を変える必要があります。

参考URL:
http://ja.wikipedia.org/wiki/Eval
b2naritomo
質問者

お礼

ご回答ありがとうございます。 リンクまで張っていただき、とてもよく理解する事が出来ました。 今回のケースはどうしてもこうしなければいけないというよりも、できるものならやってみたいという内容なので、同じアルゴリズムを違う方法で試してみたいと思います。

関連するQ&A