2011-09-13 8 views
3

これはしばらくの間リサーチされており、何をすべきかはわかりません。iOSのデバッグモード

ユーザーがデバッグモードをオンまたはオフに切り替えることを許可します。 NSLogs上のデバッグモードでは、コンソールに出力されます。

現在、私はプリプロセッサ(DEBUG)を使用してビルド設定でデバッグモードをオンまたはオフに設定でき、次のコードを使用してNSLogをブロックします。

#ifdef DEBUG 
    NSLog(@"If you can see this then debug is on"); 
#endif 

私は、ユーザーからの入力を取得するには設定ページにトグルスイッチを作成しましたが、私はその後、未定義/再定義DEBUGに、この入力を使用する方法がわかりません。何か案は?

これが可能であれば、私は確信が持てませんので、他の解決策もありがとうございます。

多くの感謝:)

答えて

5

あなたはプリプロセッサディレクティブを使用しないでください。#ifdef DEBUGを使用してはDEBUGが定義されていない場合、コードのその部分がすべてではコンパイルされない、ということを意味します。

代わりに、プリプロセッサのディレクティブを、グローバル変数をチェックする単純なif文で置き換える必要があります(または少なくとも解決策かもしれません)。

+0

ありがとうございます。これは完全に異なる質問かもしれませんが、私はグローバル変数かシングルトンを使うべきですか?再度ありがとう:) – IainNotAndrew

+0

"正しい"選択肢があるかどうかわかりませんが、シンプルな変数を使用するのは最も簡単な解決策だと思います。単純な 'if(DEBUG)'ではなく、グローバル変数の数が多くなる場合や、追加のチェックをする必要がある場合は、シングルトンと考えることができます。再び、それはちょうど私の意見です、私はそれが最善のことであるとは確信していません。 :) – Saphrosit

+0

あなたの助けのために大丈夫です:) – IainNotAndrew

0

あなたのコードブロックは、あなたがデバッグまたはリリース用にビルドしているかどうかだけを確認し、それに応じてビルドすると思います。

リリースモードになるデバイスでビルドすることはできますが、リリースモードではシミュレータをリリースモードで実行することはできません。

シミュレータ用のアプリケーションを手動でビルドし、パックドファイルをxcodeを実行しないでシミュレータ上でのみ実行するようにしてもよいでしょうが、合理的ではありません。

関連する問題