如何从一组网址获取单个URL?

时间:2016-07-24 09:26:45

标签: arrays swift url

这是我的代码:

  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个这样的网址:

http://sdkladlkasjd1.jpg

http://sdkladlkasjd2.jpg

http://sdkladlkasjd3.jpg

http://sdkladlkasjd4.jpg

我打印时:

              print(urimage[1])

它给了我:  '下标'不可用:不能使用Int下标String,请参阅文档注释以供讨论

当我把它放在另一个值时:

var urls = [String]()
self.urls = [urimage]

我打印:

                print(self.urls.count)
它给了我

1

1

1

1

如何在earch上访问其中一个网址!?

我想在imageview上展示它们,但我可以!

1 个答案:

答案 0 :(得分:1)

正如Julian Kniephoff正确提到的那样,你在for循环中打印每个URL,因此你无法访问一个特定的URL。但是,还有另一个问题,那就是每次都用最新的url替换urls数组。

要解决此问题,只需将行self.urls = [urimage]替换为self.urls.append(urimage)

然后,您可以通过执行for之类的操作来访问self.urls[1]循环之外的特定图像。

这也是print数组计数返回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()