objective-c - 当初始值设定项不是编译时常量时,在 Swift 中使用 C 宏

标签 objective-c swift

我有一个包含许多条目的 Strings.h 文件,例如:

#define HIDE_WORD NSLocalizedString(@"Hide", @"the word on a button to Hide a screen that is showing")

如何让 Swift 可以使用这些宏,或者如果我不能让这些宏可用,有什么替代方法?将我想要的宏包装在 Swift 类方法中的最佳方法是什么?

This answer在我的情况下不起作用,因为 NSLocalizedString(@"Foo", @"Bar") 不是常量。

最佳答案

由于没有不编辑代码就可以自动将这些字符串导入 Swift 的方法,因此您不妨将所有数据直接导入 Swift。

正则表达式方法如何?

搜索

\#define (\w*) NSLocalizedString\(@"([^"]*)", *@"([^"]*)"\)

替换

let $1 = NSLocalizedString\("$2", comment: "$3"\)

关于objective-c - 当初始值设定项不是编译时常量时,在 Swift 中使用 C 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45803091/

相关文章:

ios - 1080p AVCaptureSession

objective-c - 尝试访问应用程序委托(delegate)变量/属性

objective-c - 防止 Xcode 在新 header 上创建 NS_ASSUME_NONNULL_BEGIN 和 NS_ASSUME_NONNULL_END

ios - 如何移动 MKMapView 的中心,以便默认位置图标转到底部中心

swift - UIImageView 有时无法加载

xcode - 如何获取变量保存在 SpriteKit swift Xcode 的所有场景中

ios - 每行结果相同

ios - 在应用程序中包含 iOS 应用程序。这可能吗?

xcode - 设置 leftBarButtonItem 垂直位置

swift - 你怎么知道什么时候在 swift 中施放一个元素?