0

我使用 Haneke 框架从站点获取数据。使用 Haneke 框架,我还可以从站点获取图像,并且这些图像可以呈现在 UIImageView 上。现在我想从网站上获取一些文本。

我是这样做的:

 cache.fetch(URL: URL).onSuccess { JSON in
            println(JSON.dictionary?["index"])

它打印了“索引”中的所有数据。

现在我想要,“索引”中的所有数据都应该显示在 UITextView 上。

  self.textView.text = JSON.dictionary["index"]

但它不起作用。我得到错误:

无法将“AnyObject”类型的值分配给“String!”类型的值

我必须打开它还是?

4

3 回答 3

1

最后,这会打印出 JSON 文本的所有记录。该结构是一个字典数组。文本的格式非常简单(键和值之间有两个制表符)。

  cache.fetch(URL: url).onSuccess { JSON in
    if let index = JSON.dictionary?["index"] as? [Dictionary<String,String>] {
      var resultString = ""
      for anItem in index {
        for (key, value) in anItem {
          resultString += "\(key)\t\t\(value)\n"
        }
        resultString += "\n\n"
      }
      self.textView.text = resultString
    }
  }
}
于 2015-06-29T17:45:09.163 回答
0

编译器不知道字典项的类型。如果您知道它总是一个字符串,请强制向下转换AnyObjectString

self.textView.text = JSON.dictionary["index"] as! String
于 2015-06-28T14:41:06.937 回答
0

正如我们已经揭示的那样JSON.dictionary["index"],这是一个数组,这是一种安全的语法,假设数组只包含一个项目

if let indexTextArray = JSON.dictionary?["index"] as? [String] {
  if !indexTextArray.isEmpty {
      self.textView.text = indexTextArray.first!
  }
}
于 2015-06-28T15:08:14.520 回答