0

我想做的是一个带有操作方法的简单按钮,这个按钮被初始化、创建、分配给它的操作方法,并且只在调试和 AdHoc 模式下显示。因此,作为开发人员或测试人员,我可以看到按钮,但在发布中,客户端将无法看到该按钮。

到目前为止我所做的如下:

- 在我的project-->Build Settings选项卡中,我在 Debug 和 Adhoc 中将 Debug 值设置为 1,如下所示:

在此处输入图像描述

-然后我打开了 prefix.pch 文件,在那里,我被阻止了,我不知道该怎么办。

基本上,我的操作方法是这样的:

UIButton btnSwitch=[[UIButton alloc]init];

//Etc...

上面的代码应该在一个特定的文件中调用(应该包含按钮的 UIViewController 类)。

我该怎么做,我的意思是,我怎么能告诉我的应用程序仅在 DEBUG 和 Adhoc 模式下执行特定文件中的代码。

提前谢谢。

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 方案,则基于 Debug 配置添加 AdHoc 配置,然后基于该配置创建方案。

于 2012-06-21T08:19:47.693 回答