无法将“Int”类型的值分配给“String”类型?在 (cellForRowAt) 中使用 Tableview

Posted

技术标签:

【中文标题】无法将“Int”类型的值分配给“String”类型?在 (cellForRowAt) 中使用 Tableview【英文标题】:Cannot assign value of type 'Int' to type 'String?' with Tableview in (cellForRowAt) 【发布时间】:2018-01-31 23:51:57 【问题描述】:

我正在尝试将一个 Int 值分配给 (cellforRowAt) 中的单元格标签,但是如何将“成员”转换为字符串? 'Members' 是在结构中声明的 Int。关于如何在 tableview 函数中将 String 转换为 Int 的任何想法?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! ClassesTBVCustomCell
        cell.className.text = myClass[indexPath.row].className
        cell.userCountLabel.text = myClass[indexPath.row].**members**

        cell.cellView.layer.cornerRadius = 10
        cell.delegate = self

        return cell
    

但我收到此错误:

Cannot assign value of type 'Int' to type 'String?'

这里是声明“成员”的地方:

struct ClassData 

    let postId: String
    let members: Int
    let className: String
    init?(postId: String, dict: [String: Any]) 
        self.postId = postId

        guard let members = dict["members"] as? Int,
            let className = dict["className"] as? String
            //let classPosts = dict["classPosts"] as? String
            else  return nil 
        self.members = members
        self.className = className
    

【问题讨论】:

试试这个.... String(myClass[indexPath.row].members) 【参考方案1】:

您需要将 members 变量从 int 转换为 string 以显示以下方式:-

let member = "\(myClass[indexPath.row].members)"
cell.userCountLabel.text = member 

【讨论】:

以上是关于无法将“Int”类型的值分配给“String”类型?在 (cellForRowAt) 中使用 Tableview的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法将“[String]”类型的值分配给 swift 中的“String”类型

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

无法将 String 类型的值分配给 AnyObject 类型?斯威夫特 3.0

“无法将类型 'String' 的值分配给类型 'AnyObject?'”,Swift 3,Xcode 8 beta 6

如何更正错误“无法将 [NSManagedObject] 类型的值分配给 [String] 类型

使用 SwiftUI 从 Cloud Firestore 中的集合“配置文件”中获取数据。无法将类型“[String:Any]”的值分配给类型“UserProfile”