如何在 swift 3.0 中编写此代码,特别是如何在 swift3 中使用宏?

Posted

技术标签:

【中文标题】如何在 swift 3.0 中编写此代码,特别是如何在 swift3 中使用宏?【英文标题】:How to write this code in swift 3.0, specially how to use Macro in swift3? 【发布时间】:2017-02-06 10:35:19 【问题描述】:

如何在swift 3.0中编写这段代码?

NSSTring *countString=[NSString stringWithFormat:@"%d %@",count,EDIT_CHAR];

其中,EDIT_CHAR 是宏,计数是整数。

【问题讨论】:

使用全局 let/var 变量。在类外声明,它将在整个项目中都可以访问。 var countString: NSSTring? = "\(count) \(EDIT_CHAR)"; 【参考方案1】:

Swift 没有预处理器,但您可以创建一个包含所有常量或标志的结构。

struct MyAppConstants 
 static let editChar = "f"
// Etc...

你可以叫它MyAppConstants.editChar 您的问题被标记为 swift,但您发布的代码是 ObjC。

【讨论】:

谢谢,但是构造结构是处理obj C或其他东西的宏的唯一方法? 如果您使用的是 ObjC 或与 Swift 的混合项目,您可以创建宏,但您只能在 ObjC 源文件中使用它们(据我记得)。在 Swift 中有不同的做法。结构就是其中之一,但也可以使用枚举或简单地在全局范围内声明常量。使用结构或枚举,您可以轻松地将常量分隔为不同的上下文,例如 UIConstants、FileConstants 等。对于这两种方法之间的差异,您可以从 MartinR ***.com/questions/38585344/… 阅读此答案

以上是关于如何在 swift 3.0 中编写此代码,特别是如何在 swift3 中使用宏?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3.0 中使用 keysSortedByValue?

如何在swift 3.0中计算用户从当前位置行进的距离

获取“无法打开应用程序,因为您无权查看它。 “将项目代码从swift 2.2转换为swift 3.0之后

如何在 swift 3.0 中使用“<null>”检查条件

如何在 Swift 3.0 中使用 SwiftyJSON 将 JSON 数据分配给 UILabel?

UIUserNotificationType 在 iOS10 Swift 3.0 中被弃用