-1

在 cellForRowAtIndexPath 方法中,我创建了一个自定义单元格。该单元格有一个标签来显示项目名称。为标签赋值后,打印时显示 nil 值。因此该标签无法显示在表格视图中。

let cell = self.LeadsListTable.dequeueReusableCell(withIdentifier:"LeadsID", for: indexPath) as! LeadsCell

    if let leadsDict: NSDictionary = self.leadsArray[indexPath.row] as? NSDictionary
    {
       cell.project_title?.text = (leadsDict.object(forKey: "project_title") as! String)
    }

这种方式我用来显示标签的值

po print(cell.project_title?.text) (or) print(cell.project_title?.text)
4

2 回答 2

1

如果 print 语句返回 nil,那只能意味着 cell.project_title 是 nil,因为 cell 和 .text 都不是可选项。确保在尝试设置其 .text 属性之前初始化 .project_title 属性。

于 2018-04-23T16:27:18.773 回答
0

@A.Yesuvin

将此行放在您的可选绑定(如果让)语句之上

cell.project_title?.text = "test_text"

如果然后当您打印print(cell.project_title?.text)并且它是“test_text”时,那么您知道您不允许这样做:self.leadsArray[indexPath.row] as? NSDictionary

如果是这种情况,请尝试按照@vadian 所说的操作并使用本机 Swift Dictionary ([String:Any])。

如果 if 语句中的代码实际运行,则仔细检查键“project_title”是否确实在字典中。

如果是这样的话,那么......好吧,修复它。

也只是一个提示:继续使用“可选绑定”而不是强制展开/强制转换,(leadsDict.object(forKey: "project_title") as! String 因为这样做最终会遇到错误:据我们所知,这可能只是“错误/零”所在的位置。

于 2018-04-25T09:09:56.433 回答