在 Swift 的调试消息中检查字符串

Check for a string in a debug message in Swift

我有一个 View 和一个 view.backgroundColor。当我将值打印到调试日志时,我得到

<UIImage:0x283b31b00 named(main: bg_200_200) {200, 200} renderingMode=automatic>

是否可以检查这个“字符串”(我知道它不是真正的字符串)是否出现了文本,例如如果它包含“bg_200”? 谢谢!

UI 总是从某些数据模型生成的。与其检查 UI 中的值,不如测试用于生成 UI.

的数据模型中的值

这在 Swift 中尤为明显UI,它始终是数据驱动的,并且在数据模型发生变化时总是重新生成。

在 UIKit 中,这可能不太明显 - 例如,当您从某个动作更改背景时,例如:

@IBAction func onButtonClicked() {
   myView.backgroundColor = ...
}

如果您以后需要访问该值,最好将其存储在数据模型中,然后使用该值更改 UI,例如:

private var buttonWasClicked = false

@IBAction func onButotnClicked() {
   buttonWasClicked = true
   updateBackground()
}

private func updateBackground() {
   myView.backgroundColor = buttonWasClicked ? UIColor.red : UIColor.clear
}