(XCode 6.3.2,Swift 1.2)
在研究了整个晚上的互联网之后,我已经知道这不是那么容易做到的。
我只想得到一个YouTube链接的视频ID。所以"https://www.youtube.com/watch?v=ABCDE“中的"ABCDE”
到目前为止我得到的是:
var url = "https://www.youtube.com/watch?v=ABCDE"
let characterToFind: Character = "="
let characterIndex = find(url, characterToFind)
println(characterIndex)
url.substringFromIndex(advance(url.startIndex, characterIndex))Prinln产出:可选(31)
是的,但我不能用这个,因为它不是索引。
XCode还为最后一行声明:调用中参数#3缺少参数参数
我也不知道substringFromIndex的第三个参数应该是什么。
事先非常感谢!
发布于 2015-05-26 23:57:53
您可以使用NSURL查询属性如下:
Xcode 8.3.1·Swift 3.1
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = URL(string: link)?.query?.components(separatedBy: "=").last {
print(videoID) // "ABCDE"
}另一种选择是使用URLComponents。
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = URLComponents(string: link)?.queryItems?.filter({$0.name == "v"}).first?.value {
print(videoID) // "ABCDE"
}Swift 1.x
let link = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = NSURL(string: link)?.query?.componentsSeparatedByString("=").last {
println(videoID) // "ABCDE"
}发布于 2015-11-23 17:30:40
在您的情况下,不需要像其他答案那样创建NSURL。只需使用:
var url = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = url.componentsSeparatedByString("=").last {
print(videoID)
}发布于 2017-04-06 06:25:46
Swift 3+版本:
var url = "https://www.youtube.com/watch?v=ABCDE"
if let videoID = url.components(separatedBy: "=").last {
print(videoID)
}https://stackoverflow.com/questions/30469838
复制相似问题