0

私がやりたいのは、アクションメソッドを備えたシンプルなボタンです。このボタンは初期化され、作成され、アクションメソッドに割り当てられ、デバッグモードとAdHocモードでのみ表示されます。したがって、開発者またはテスターとして、私はボタンを見ることができますが、リリースでは、クライアントはそのボタンを見ることができなくなります。

私がこれまでにしたことは次のとおりです。

-私のproject-->Build Settingsタブでは、次のように、デバッグとアドホックの両方でデバッグ値を1に設定します。

ここに画像の説明を入力してください

-次に、prefix.pchファイルを開いたところ、ブロックされて何をすべきかわかりません。

基本的に、私のアクションメソッドは次のようなものです。

UIButton btnSwitch=[[UIButton alloc]init];

//Etc...

上記のコードは、特定のファイル(ボタンを含むUIViewControllerクラス)で呼び出す必要があります。

どうすればそれを行うことができますか?つまり、DEBUGモードとアドホックモードでのみ特定のファイルでそのコードを実行するようにアプリケーションに指示するにはどうすればよいですか?

よろしくお願いします。

4

2 に答える 2

9

prefix.pchファイルに関するあなたの考えがわかりません。とりあえずそのままにしておきます。

ビューコントローラ内のコードでボタンを作成し、このように条件付きで実行できます。

#ifdef DEBUG
    UIImage *buttonImage = [UIImage imageNamed:@"btnSwitchImage"];

    btnSwitch = [UIButton buttonWithType:UIButtonTypeCustom];
    //frame size given as a point of reference only but when you create a button this
    //way you have to set the frame otherwise you will see nothing.
    btnSwitch.frame = CGRectMake(0.0f, 0.0f, buttonImage.size.width, buttonImage.size.height);
    [btnSwitch setBackgroundImage:buttonImage forState:UIControlStateNormal];

    [btnSwitch addTarget:self action:@selector(buttonAction:)forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btnSwitch];
#endif
于 2012-06-21T08:20:49.003 に答える
5

コードをガードでまとめることができます。

#ifdef DEBUG
    // Code here to only run when DEBUG is defined
#else
    // Code here to run only when DEBUG is not defined
#endif

// code here to execute regardless of the state of DEBUG

また、Xcode 4を使用している場合は、自分でDEBUGを定義する必要はありません。これは、自動的に行われます。スキームを見ることで、設定するかどうかを制御できます。

デフォルトのXcodeスキームは、デバッグフラグを設定するデバッグ構成に対して構築されます。このビルドフラグを設定するAdHocスキームを作成する場合は、デバッグ構成に基づいてAdHoc構成を追加し、それに基づいてスキームを作成します。

于 2012-06-21T08:19:47.693 に答える