arrays - 如何从 url 数组中获取单个 url?

标签 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])

它给了我: '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/

相关文章:

url - CMS 使简单的 Htaccess Mod_Rewrite 不起作用

php - 如何根据用户名 PHP 获取 URL

javascript - 如何检查该值是一个数组?

python - 将 C++ 中的数组操作转换为 Python

xcode - 没想到发现无

ios - 使用 RxSwift 和 Realm 动态过滤结果

Java 从 Servlet 读取未解码的 URL

c++ - 我怎样才能让这个数组填充我的输入值?

c - (C 编程)制作一个像 argv 一样的 char ** 数组

swift - swift 中的匿名类