URL을 공유로 변환 한 후 다시 변환
를로 CHAPTER 2 그래서 NSURL
했습니다 String
. 그래서 내가 등 println
처럼 보인다 면file:///Users/...
나중에 다시 원 NSURL
잃어 버립니다 아래에서 볼 수 있습니다 다시 변환하려고하지만 위의 버전 버전에 슬래시 두 개를 잃어 버립니다 url
.
CHAPTER 2 NSURL
에서 String
내가 두 개의 슬래시 를 제거하는 이유는 무엇 이며 어떻게 NSURL
포함 된 세 개의 슬래시 로 다시 CHAPTER 2 할 수 있습니까?
var urlstring: String = recordingsDictionaryArray[selectedRow]["path"] as String
println("the url string = \(urlstring)")
// looks like file:///Users/........etc
var url = NSURL.fileURLWithPath(urlstring)
println("the url = \(url!)")
// looks like file:/Users/......etc
fileURLWithPath()
일반 파일 경로 (예 : "/ path / to / file")를 URL로 변환하는 데 사용됩니다. 귀하 urlString
는 체계를 포함하는 전체 URL을 제공합니다.
let url = NSURL(string: urlstring)
다시로 변환합니다 NSURL
. 예 :
let urlstring = "file:///Users/Me/Desktop/Doc.txt"
let url = NSURL(string: urlstring)
println("the url = \(url!)")
// the url = file:///Users/Me/Desktop/Doc.txt
에서 스위프트 4 와 스위프트 3 , URL로 적은 변환을 원하는 경우 :
URL(string: String)
또는,
URL.init(string: "yourURLString")
그리고 URL을 공유로 변환하려는 경우 :
URL.absoluteString
아래 의 내용을 URL로 변환합니다.
String(contentsOf: URL)
Swift의 NSURL에서 버전의 경로를 얻을 수 있습니다.
let path:String = url.path
업데이트 : URL에주의를 기울이십시오.이 예제에서는 무효가 될 수 있습니다. 따옴표로 URL을 사용하여 변환 할 수 있습니다.
let urlString = "http://ifconfig.me"
//string to url
let url = NSURL(string: urlString)
//url to string
let string = "\(url)"
let url = URL(string: "URLSTRING HERE")
let anyvar = String(describing: url)
스위프트 3 (NSURL은 잊어 버림).
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
URL에서 URL을 만들려면
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
구성 요소 ()를 추가하면 퍼센트 인코딩이 자동으로 추가됩니다.
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
우리가 String 부분을 원하지만 루트 부분을 갖지 대체면 (백분율 인코딩이 자동으로 제거주의하십시오) :
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
루트 부분을 유지하기 위해 작업을 수행하십시오 (그러나 인코딩 비율은 염두에 두지에서).
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
문자열에 대한 백분율 인코딩을 수동으로 추가하려면 :
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
백분율 인코딩을 제거하려면 :
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
백분율 인코딩은 네트워크 요청에 대한 URL이 필요하기 때문에 중요하지만 파일 시스템에 대한 URL은 항상 작동하지는 않습니다. 실제로 사용하는 방법에 따라 다릅니다. 여기서주의 할 점은 자동으로 제거되거나 추가 될 수 있으므로 이러한 변환을 신중하게 디버그하는 것이 좋습니다.
Swift 3 버전 코드 :
let urlString = "file:///Users/Documents/Book/Note.txt"
let pathURL = URL(string: urlString)!
print("the url = " + pathURL.path)
UIWebViewDelegate와 함께 사용되는 Swift 3 shouldStartLoadWith
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let urlPath: String = (request.url?.absoluteString)!
print(urlPath)
if urlPath.characters.last == "#" {
return false
}else{
return true
}
}
참고 URL : https://stackoverflow.com/questions/27062454/converting-url-to-string-and-back-again
'IT' 카테고리의 다른 글
변수를 2로 나눌 수 있는지 확인 (0) | 2020.07.21 |
---|---|
Bash Templating : Bash를 사용하여 템플릿에서 구성 파일을 작성하는 방법은 무엇입니까? (0) | 2020.07.21 |
Java에서 시간 소인을 밀리 초 단위의 클래스 형식 시간으로 변환 (0) | 2020.07.21 |
C에서 % n 형식 지정 튼 사용하는 것은 무엇입니까? (0) | 2020.07.21 |
Mysql“show processlist”의 모든 프로세스를 어떻게 종료합니까? (0) | 2020.07.21 |