** Xcode 6.0 Beta5 (6A279r) 需要 **
Swift-URITemplate 是 URI Template 的 Swift 实现 -- RFC6570,在该规范中可以扩展到第 4 级。
如果您不熟悉 URI Template,它是一个实用程序,可以用来用值扩展一个字符串,就像 printf
一样,但是用于 URL。例如,如果您给 Swift-URITemplate 一个字符串 http://www.example.com/foo{?query,number}
(格式部分),和一个字典 {"query": "mycelium", "number": 100}
(值部分),Swift-URITemplate 将返回一个扩展后的 URL http://www.example.com/foo?query=mycelium&number=100
。更多信息见 RFC 6570,或者您可以查看 URITemplateRFCTests.json 中的测试。
Swift-URITemplate 最初是为 HTTP 库 Cycles 开发的。
Swift-URITemplate 目前还没有打包成框架。您需要将 单个源文件 添加到您自己的项目中以使用 Swift-URITemplate。
为了扩展 URI 模板,您使用函数 ExpandURITemplate
public func ExpandURITemplate(template: String, values: AnyObject) -> String
参数 template
是要扩展的模板。参数 values
是一个对象,在函数扩展模板时提供值。
values
可以是一个 Swift 字典var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
["query": "mycelium", "number": "100"])
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
NSDictionary(objects: ["mycelium", "100"], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
objectForKey
方法的对象。values
提供的对象可以是字符串var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
NSDictionary(objects: ["mycelium", "100"], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
mycelium
键的值)var URLString = ExpandURITemplate("http://www.example.com/foo{?query,number}",
NSDictionary(objects: ["mycelium", 100], forKeys: ["query", "number"]))
println("\(URLString)") // http://www.example.com/foo?query=mycelium&number=100
stringValue
方法的对象。请使用 问题系统。我们期待听到您对项目的看法。
Swift-URITemplate 在 MIT 许可证下发布。见 LICENSE.md。