【问题标题】:Create parameterised string or macro in swift?快速创建参数化字符串或宏?
【发布时间】:2015-10-19 11:27:24
【问题描述】:

我是 Swift 新手,我想知道如何在 Swift 中创建参数化字符串或宏?

就像我们在 Objective-C 中所做的那样:

#define SEARCH(name, limits) [[NSString stringWithFormat:@"https://someURL.com/search?term=%@&limit=%ld", name, limits]

如何在 Swift 中制定上述语句?

【问题讨论】:

标签: ios objective-c swift


【解决方案1】:

你可以定义全局函数:

func search(name: String, _ limits: Int) -> String {
    return "https://someURL.com/search?term=\(name)&limit=\(limits)"
}

别忘了对name进行URL编码:

func search(name: String, _ limits: Int) -> String {
    let urlEncodedName = name.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) ?? ""
    return "https://someURL.com/search?term=\(urlEncodedName)&limit=\(limits)"
}

【讨论】:

    【解决方案2】:

    您也可以在 Bridge-Header 中使用相同的代码

    #define SEARCH(name, limits) [[NSString stringWithFormat:@"https://someURL.com/search?term=%@&limit=%ld", name, limits]
    

    同

    #define kNSUserDefaultUserInfo "UserInfo"
    

    我在我的 Project Bridge-Header 中尝试了您的代码,无论是 Swift 还是 Objective C,它都可以从所有文件中访问。

    希望对你有帮助

    【讨论】:

    • 我试过这个,但它不适合我。在bridge头文件中添加后,如何使用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2014-09-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多