gpt4 book ai didi

ios - swift #pragma 替换来删除生产和开发中的代码(即 #if TEST_CODE == 1)?

转载 作者:行者123 更新时间:2023-11-30 12:01:55 26 4
gpt4 key购买 nike

我有用于我想要的应用程序的 GPS 测试的测试代码完全 stub ,以便它甚至不编译到二进制文件中。这是在整个代码库中打开/关闭测试的简单方法我想测试的各种东西。

在 Objective-C 中我会这样做:

#define TEST_CODE == 1

并像这样使用它:

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

#if TEST_CODE == 1
addressTextField.text = @"My Real Address";
#endif
...
}

由于可以使用“strings”命令等命令来搜索二进制文件,我不希望我的任何测试内容投入生产,但是据我所知没有办法快速做到这一点。

有人有任何解决方案可以做到这一点吗?

没有某种类型的机制似乎是 swift 的缺陷这样做。我不可能是唯一一个以这种方式使用#pragma 的人。

最佳答案

Swift 中的等价物是条件编译。

您可以在调试配置的 OTHER_SWIFT_FLAGS build设置中将条件标志设置为 -DTEST_CODE。然后,您可以从 Swift 文件中引用它,如下所示:

#if TEST_CODE
// conditionally do something
#endif

请注意,不支持标志值,因此您无法传递值 1。

了解更多信息:Using Swift with Cocoa and Objective-C (Swift 4): Preprocessor Directives

关于ios - swift #pragma 替换来删除生产和开发中的代码(即 #if TEST_CODE == 1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com