ios - 如何使用 swift 编程语言将宏创建为函数

标签 ios objective-c iphone xcode swift

以下语句表示在 objective-c 中定义宏。

据我所知,Swift 不支持宏,所以我必须为此使用函数,所以你能帮我提供以下语句的 swift 代码吗?

#define LOCAL_STRING(KEY, VALUE, ...) [NSString localizedStringWithFormat:NSLocalizedString(@KEY, !@VALUE), ##__VA_ARGS__]

最佳答案

尝试使用字符串扩展(I found here 的答案):

extension String {
      func localizedStringWithVariables(value: String, vars: CVarArgType...) -> String {
        return String(format: NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: value, comment: ""), arguments: vars)
      }
}

那么你可以这样做:

"KeyNameHere".localizedStringWithVariables("some default value", vars: [])

附注如果键/值中没有格式参数,则此 vars 示例中的空数组应该没问题

关于ios - 如何使用 swift 编程语言将宏创建为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36442545/

相关文章:

ios - 在collectionView中加载图像

ios - 分配有效的 UIImage 后,UIImageView.image 始终为 nil

iphone - 是否有任何用 objective-c 编写的 OpenID 客户端库?

iphone - 越狱的iOS设备的后台处理

ios - 使用 xamarin 为 sdk >= 11.14 的 iphone 5c 构建一个 ios 应用程序

ios - Phonegap iOS InAppBrowser 缩放

ios - CoreData:NSFetchedResultsController一对多对多关系

iphone - 如何使用从 iPhone 应用程序主视图传递的搜索字符串在 subview 上调用 google 搜索

ios - 没有 phonegap 的 iOS 项目中的 JQuery Mobile

ios - 如何在 ios 7 中授予访问电话地址簿的权限?