【问题标题】:Cannot assign a value of type '[(String)]' to a value of type 'String!'?无法将“[(String)]”类型的值分配给“String!”类型的值?
【发布时间】:2015-10-24 18:16:29
【问题描述】:

woodText.text = [String](textForWood.values)这是我的代码。 woodText 是 UITextView,textForWood 是字典。请帮忙。

【问题讨论】:

标签: ios swift dictionary textview


【解决方案1】:
woodText.text = textForWood["Oak"] as! String

您需要将字符串分配给UITextView 的text。以上展示了如何从字典中提取字符串。

基于 cmets 的加法

我不认为使用字典来填充表格视图是一个好主意。 (请记住,字典不是有序的,数组是有序的。)您应该有某种数组,它可以告知表格视图它应该显示多少行以及在这些行中显示什么。

一种解决方案是字典数组 ([[String : String]])。然后,您可以填充cellForRowAtIndexPath 中的每个单元格。每行的字典应该包含类似

["name" : "Oak", "text" : "The text to display in the oak cell..."]

使用标准样板代码将带有文本视图的单元格出列,然后

let woodDictionary = textForWood[indexPath.row]!
woodText.text = woodDictionary["text"] as! String

使用简单的对象会好得多。

struct Wood {
    let name: String
    let text: String
}

【讨论】:

  • 多键怎么办?
  • 什么意思?你想组合多个字符串?
  • 我在 tableView 中有 12 个单元格,每个单元格都提供图像和文本。这个文本应该像字典一样,每个单元格都有一个特定的文本。
  • 在我的情况下,我有 id 和 name 键,当 id 为 null 时, name 值不显示。 arrayObject[indexPath.row].source?["name"]
【解决方案2】:

试试这个:

var string = ""

for value in textForWood.values.array {
    string = string.stringByAppendingString("\(value), ")
}

woodText.text = string

希望这会有所帮助。

【讨论】:

  • 刚刚在 playGround 中尝试了这段代码,它成功了: var textForWood = [1:"aa", 2:"bb"] var string = "" for value in textForWood.values.array { string = string.stringByAppendingString("(value), ") } println("(string)") 你能提供一些代码吗?
  • 我有一个 tableView,我这里有一个图像和一个标签,通向下一个 viewController,并且有一个从第一页开始的文本和图像。在 TextView 中应该站在某种木头上的文本。我认为最好用字典。 var textForWood = [“灰”:“fadsfdasl”,“桤木”:“kahgfajdfsasgj”,“桤木”:“fgajhsfaskj”]。 woodText 是应该提供物种信息的 textView。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
相关资源
最近更新 更多