Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION
Posted
技术标签:
【中文标题】Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION【英文标题】:Swift Thread 1: EXC_BAD_INSTRUCTION when I try to change a uilabel.text 【发布时间】:2015-07-08 20:07:09 【问题描述】:我知道有很多这样的 Stack Overflow 问题,但我找不到适合我的答案。我正在使用一个名为chillerCell
的自定义UITableViewCell
类。这是它的代码:
import UIKit
class chillerCell: UITableViewCell
@IBOutlet weak var iconLabel: UILabel!
@IBOutlet weak var boldLabel: UILabel!
@IBOutlet weak var italicLabel: UILabel!
func configureCellWithEvent(event: Event)
boldLabel.text = "\(event.eventName)"
italicLabel.text = "\(event.eventDescription)"
我在 boldLabel.text = "\(event.eventName)"
行收到 Thread 1 运行时错误
我创建了自己的 Event
类,是的,event.eventName
和 event.eventDescription
属于 String
类型,而不是 Nil
。
编辑:我忘了说,我的 boldLabel 和 italicLabel 不是纯文本,而是属性文本。
【问题讨论】:
你能给我们更多关于运行时错误的细节吗?您是否检查过您的 IBOutlet 是否正确链接? 是的,我的故事板连接正确。我什至断开了插座并重新连接。 很奇怪。您能否在调试器中检查粗体标签以确保它不为零。如果不尝试更改其他属性 - 例如BoldLabel.hidden = true。还可以尝试交换粗体标签和斜体标签,看看它是否特定于粗体标签。 boldLabel 为零。但是,它肯定与情节提要有关 好的,但这听起来是个问题。查看this SO Question 或this one 了解为什么链接的 Outlet 可能仍然为零。 【参考方案1】:试试这个,如果事件对象的事件名称和事件描述为字符串,它会起作用:
func configureCellWithEvent(event: Event)
var attributedString = NSMutableAttributedString(string:"(event.eventName)") and boldLabel.text = attributedString
boldLabel.text = attributedString
italicLabel.text = attributedString
【讨论】:
您能在此处复制粘贴您的事件对象值吗? 再检查一下 IBOutlet 连接,看看这是否适合你。 func configureCellWithEvent(event: Event) boldLabel.text = "测试粗体标签" italicLabel.text = "测试斜体标签" 我刚试了测试值,还是报错 那么这就是错误,您的 IBOutlet 连接已断开。在你的故事板中修复它。转到情节提要并单击标签以使用 ctrl+从 UILabel 拖动到类来检查或创建新的 IBOutlet。 我的 IBOutlets 很好,我重置了它们,但仍然出现错误【参考方案2】:删除标签并再次创建其他标签,这对我有用。
【讨论】:
以上是关于Swift 线程 1:当我尝试更改 uilabel.text 时出现 EXC_BAD_INSTRUCTION的主要内容,如果未能解决你的问题,请参考以下文章
iOS Swift 如何更改或更新自定义 UITableViewCell 中的 UILabel 属性
当他们在 Swift 中创建自己时如何更改 UILabel 的标题?
在 Swift 中使用 UISlider 以编程方式更改 UILabel