这是我的代码:
urll = NSURL(string: "http://xxxxxxxxxxx.com/api/?slider=uij6sdnb")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(urll) {(NSData, response, error) -> Void in
do {
let records = try NSJSONSerialization.JSONObjectWithData(NSData!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
for record in records {
// let urlid = Int(record["slide_id"] as! String)
let urimage = record["slide_url"] as! String
self.urls = [urimage]
print(self.urls.count)
}
}
catch {
print("Json Error")
}
}
task.resume()
当我打印时:
print(urimage)
它给了我 4 个这样的网址:
当我打印时:
print(urimage[1])
它给了我: 'subscript' 不可用:无法使用 Int 为 String 下标,请参阅文档注释进行讨论
当我将其放入另一个值时:
var urls = [String]()
self.urls = [urimage]
我打印:
print(self.urls.count)
它给了我
1
1
1
1
我到底如何才能访问此网址之一!?
我想在 imageview 上显示它们,但我可以!
最佳答案
正如 Julian Kniephoff 正确提到的,您正在 for 循环中打印每个 URL,因此您无法访问特定的 URL。但是,还有另一个问题,即每次都用最新的 url 替换 urls 数组。
要解决此问题,只需将 self.urls = [urimage]
行替换为 self.urls.append(urimage)
即可。
然后,您可以通过执行 self.urls[1]
等操作,在 for
循环外部访问特定图像。
这也是打印
数组计数返回 1 的原因,因为每次您都将数组设置为循环中的最新一个元素。
最后,你的代码可能看起来像这样
url = NSURL(string: "http://xxxxxxxxxxx.com/api/?slider=uij6sdnb")
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url) {(data, response, error) -> Void in
do {
let records = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
for record in records {
//let urlid = Int(record["slide_id"] as! String)
let urimage = record["slide_url"] as! String
self.urls.append(urimage)
}
print(self.urls[1]) //Prints http://sdkladlkasjd2.jpg
}
catch {
print("Json Error")
}
//print(self.urls[1])
}
task.resume()
关于arrays - 如何从 url 数组中获取单个 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38550534/