2015-10-19 63 views
1

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

就像我们做的Objective-C:

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

如何在斯威夫特制定上述声明?

+1

是好还是坏雨燕[少了点有](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/Migration.html)预处理器宏。[更多](http://stackoverflow.com/a/24114340/294884) – Fattie

回答

3

您可以定义全局函数:

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

也不要忘记URL编码name

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

您也可以使用相同的代码在桥头

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

相同

#define kNSUserDefaultUserInfo "UserInfo" 

我想在我的项目大桥 - 头你的代码,并从所有文件的访问无论是斯威夫特还是目的C.

希望这将帮助你

+0

我试过这个,但它不适合我。将它添加到网桥头文件后,如何使用? – VRAwesome