【问题标题】:Could not cast value of type '__NSCFString' (0x7fff87a89460) to 'NSArray' (0x7fff87a8a310)无法将“__NSCFString”(0x7fff87a89460)类型的值转换为“NSArray”(0x7fff87a8a310)
【发布时间】:2020-03-26 08:52:10
【问题描述】:

我正在从 Mssql 中提取数据。我想将从数据库收到的数据打印到 tableview,但我收到错误“无法将类型 '__NSCFString' (0x7fff87a89460) 的值转换为 'NSArray' (0x7fff87a8a310)”。我将数据分配给 value 变量。我该如何解决这个问题?

class MakaleController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    @IBOutlet var makaleTable: UITableView!
    var stringvalue: [String] = []
 override func viewDidLoad() {
           super.viewDidLoad()
        let client = SQLClient.sharedInstance()!
             client.connect("...") { success in
           client.execute("SELECT Email FROM ...", completion: { (_ results: ([Any]?)) in
                          for table in results as! [[[String:AnyObject]]] {
                              for row in table {
                                  for (columnName, value) in row {
                                    self.stringvalue = value as! [String]
                                  }
                              }
                          }
                          client.disconnect()
                      })
                  }

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

   let cell:UITableViewCell = self.makaleTable.dequeueReusableCell(withIdentifier: "makalecell") as! UITableViewCell


        cell.textLabel?.text = self.stringvalue[indexPath.row]

        return cell
    }
    }

【问题讨论】:

  • 不不,我第一次使用 sqlclient 我不知道如何提取数据@JoakimDanielson
  • var stringvalue = ""self.stringvalue = value as? String ?? ""
  • 这次我在tableview中的“cell.textLabel?.Text = self.stringvalue [indexPath.row]”行出现以下错误:“'subscript (_ :)' is available: can '不下标讨论

标签: swift


【解决方案1】:

问题可能就在这里

 self.stringvalue = value as! [String]

请做

print(type(of:value))

value 是一个String 类型

self.stringvalue.append( value as! String )

【讨论】:

  • 输出:__NSCFString
  • 所以不是[String],那么应该是String
  • 错误代码:无法将类型 'String' 的值分配给类型 '[String]' 。将'值替换为! String' 和 '[value as!字符串]'
  • 是的,它是一种解决方法,但你在 for 循环中使用它,所以最后一个值最终会是
  • 我该怎么办
猜你喜欢
  • 1970-01-01
  • 2017-07-01
  • 2017-11-22
  • 2020-08-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2015-10-26
相关资源
最近更新 更多