微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在没有预处理器宏的情况下,有没有办法在 Xcode 项目的项目级别定义实用的方案特定标志

如何解决在没有预处理器宏的情况下,有没有办法在 Xcode 项目的项目级别定义实用的方案特定标志

根据Apple 文档,在 Swift 中,您仍然可以使用“#if/#else/#endif”预处理器宏(尽管受到更多限制)。这是一个例子:

#if DEBUG
    let a = 2
#else
    let a = 3
#endif

现在,您必须在别处设置“DEBUG”符号。在“Swift Compiler - Custom Flags”部分的“Other Swift Flags”行中设置它。-D DEBUG您在条目中添加 DEBUG 符号。

(构建设置 -> Swift 编译器 - 自定义标志) 在此处输入图像描述

像往常一样,您可以在 Debug 或 Release 中设置不同的值。

我在真实代码中对其进行了测试;在操场上似乎无法识别它。

解决方法

在 swift 之前,我将为 alpha、beta
和分发版本定义一组方案。这些方案中的每一个都将具有一组宏,这些宏被定义为在项目级别控制某些行为。最简单的例子是 DEBUG=1 宏,它是默认为 Run
构建的默认方案中的所有 Xcode 项目定义的。可以查询#ifdef DEBUG …并相应地在代码中做出决定,甚至编译出不必要的代码。

似乎这种类型的配置门控使用 swift
并不容易,因为不支持宏。有人可以提出一种类似的方法吗,我不在乎代码本身是否被编译出来。不过,我想根据构建方案来控制功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。