如何在swift 2.3中使用#undef指令
发布时间:2020-12-14 04:55:01 所属栏目:百科 来源:网络整理
导读:我想在 swift 2.3中取消定义或覆盖NSLocalizedString,我搜索了很多关于它的内容,最后我在Objective C中找到了一种方法,如下所示. #undef NSLocalizedString#define NSLocalizedString(key,_comment) your_function_name 我想在swift中实现这个功能. 我只知道
我想在
swift 2.3中取消定义或覆盖NSLocalizedString,我搜索了很多关于它的内容,最后我在Objective C中找到了一种方法,如下所示.
#undef NSLocalizedString #define NSLocalizedString(key,_comment) your_function_name 我想在swift中实现这个功能. 解决方法
#undef是一个
C preprocessor directive,和Swift
does not support any preprocessor directives,包括用于NSLocalizedString的复杂#define宏.实际上,它被导入为:
/// Returns a localized string,using the main bundle if one is not specified. public func NSLocalizedString(_ key: String,tableName: String? = default,bundle: Bundle = default,value: String = default,comment: String) -> String 但是,您可以通过编写自己的实现轻松完成预期的行为,这应该自动使用.例如: public func NSLocalizedString(_ key: String,tableName: String? = nil,bundle: Bundle = Bundle.main,value: String = "",comment: String) -> String { // Do your magic here! return "test" } 但请不要这样做.创建一个不同的功能会好得多.否则,将不清楚您的函数是否正在使用,或者您可能得到:错误:如果您需要更改签名,则模糊地使用’NSLocalizedString(_:tableName:bundle:value:comment :)’即使你只是想做一些可选的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |