【发布时间】:2016-01-27 17:42:56
【问题描述】:
我在一个 Objective-C 项目中有一个宏,可以缩短输入长引用的时间:
#define CURRENT_USER DataConnector.sharedInstance.currentUser
这允许我通过 CURRENT_USER 代替 ^ 来引用当前用户。
我将如何在 Swift 中复制它?我试过this suggested let solution,但这似乎实际上创建了一个不可变的变量。改用var 合适吗?如果 #define 改为:
#define CONST_STR = static NSString* const
...可以像这样使用:
CONST_STR kXXSomeConstant = @"a constant string";
Swift let(或var?)解决方案能否以同样的方式使用?
【问题讨论】:
-
不,我不是在问 如何 在 Swift 中创建一个常量字符串。请阅读问题谢谢。
-
宏太可怕了。它们不是类型安全的,会使调试成为一场噩梦。如果你真的经常使用特定的代码行来制作它的宏,那么你可能首先做错了什么。如果我用 Swift 重写我的代码,我会试图找到一个不是“宏的 Swift 版本”的解决方案。
-
@originaluser2 现在我可以落后了。我同意,我实际上并不打算在任何地方使用它,但我绝对想了解在 Swift 中是否有办法做到这一点,如果没有,为什么。
-
使用
#define是不好的做法,应该使用const,这使得如何使用不言自明
标签: ios objective-c swift macros