【问题标题】:Cannot subscript a value of type [NSURL]无法为 [NSURL] 类型的值下标
【发布时间】:2016-01-25 16:10:04
【问题描述】:

我收到以下错误。有没有办法解决这个问题?

我想从 URL 读取文本文件

let requestURL: NSURL = NSURL(string: "http://www.xxxxx.com/file.txt")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)

struct FactBook {
    let factsArray = [requestURL]

    //let factsArray = ["my text"]  ---> is working

    func randomFact() -> String {
        let randomInt = Int(arc4random_uniform(UInt32(factsArray.count)))

        //Error here...
        return factsArray[randomInt]  
    }
}

谢谢。

【问题讨论】:

  • 您看到的实际错误是什么?
  • 您创建了一个请求,但您是否加载过文件?
  • 为了获取远程文本文件的内容,你必须在某处执行下载...
  • let factsArray = [NSURL]() ,创建一个包含 NSURL 的数组,然后你必须将 URL 附加到数组中...factsArray.append(newFactNSURL)

标签: swift nsurl


【解决方案1】:

randomFact 被声明为返回一个字符串,factsArray 是一个[NSURL],因此索引它是一个NSURL。将函数类型更改为:

func randomFact() -> NSURL {

你应该很高兴

进一步观察:

  • 您从未加载过 URL 的内容,因此尚不清楚即使此更改是否真的解决了您的问题。
  • 就目前而言,factsArray 只有一个元素,因此将其随机化似乎毫无意义。
  • 您似乎真的想从 URL 中提取字符串,然后返回返回字符串的随机元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多