直接看代碼
/// Alamofire
let generalDelimitersToEncode = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4
let subDelimitersToEncode = "!$&'()*+,;="
/// 將后面的目錄截去
var url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: "/", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: "/", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/
} else {
print("relativeUrl is nil")
}
/// 如果不是/ 就替換最后一個目錄 (& * , + = 1 a)等
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: "ok", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/ok
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: "ok", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer/ok
} else {
print("relativeUrl is nil")
}
/// (# ; ?)直接跟在后面
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: "#", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer#
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: "#", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer/what#
} else {
print("relativeUrl is nil")
}
/// (.)相當(dāng)于空字符替換最后一級目錄
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: ".", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: ".", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer/
} else {
print("relativeUrl is nil")
}
/// (:)無任何改變
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: ":", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: ":", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/writer/what
} else {
print("relativeUrl is nil")
}
/// ([])轉(zhuǎn)碼替換
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: "[", relativeTo: url) {
print(relativeUrl.absoluteString) // http://www.reibang.com/%5B
} else {
print("relativeUrl is nil")
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: "]", relativeTo: url) {
print(relativeUrl.absoluteString) //http://www.reibang.com/writer/%5D
} else {
print("relativeUrl is nil")
}
/// 無法生成正確的url -> ("", "\\", " ", "|", "^", "`", "<", ">", "\"", "{", "}")
url = URL(string: "http://www.reibang.com/writer")
if let relativeUrl = URL(string: "", relativeTo: url) {
print(relativeUrl.absoluteString)
} else {
print("relativeUrl is nil") // nil
}
url = URL(string: "http://www.reibang.com/writer/what")
if let relativeUrl = URL(string: "", relativeTo: url) {
print(relativeUrl.absoluteString)
} else {
print("relativeUrl is nil") // nil
}
還不知道原因厨幻,如有請指教