【发布时间】:2018-04-13 16:37:21
【问题描述】:
我想在 swift 2.3 中取消定义或覆盖 NSLocalizedString,我对此进行了很多搜索,最后我在 Objective C 中找到了一种方法,如下所示。
#undef NSLocalizedString
#define NSLocalizedString(key,_comment) your_function_name
我想快速实现这个功能。
我只知道NSLocalizedString 是NSBundle.h 中用于Objective C 的宏。所以我们可以重新定义它。但是对于swift 我们无法实现这一点。我只想为swift 重新定义或覆盖NSLocalizedString 函数。请帮我排序出这个。任何帮助将不胜感激。
【问题讨论】:
-
你考虑过方法混搭吗?这是一个关于如何在 swift kostiakoval.github.io/posts/methods-swizzling-in-swift 中执行此操作的示例
-
我们可以对类和实例方法使用swizzling。但是你怎么能swizzle全局函数,NSLocalizedString就像一个swift中的全局函数,可以在没有任何类或对象引用的情况下调用。
-
这个要求很“不寻常”。你想达到什么目的?
-
你是对的,我的错,完全错过了那部分
标签: swift localization preprocessor-directive nslocalizedstring xcode8.1