我想使用我的自定义类作为字符串。这在Swift中是可能的吗?例如,我想这样做:
label.text = CustomClass()
发布于 2019-02-22 07:05:00
对于您展示的用例,一种可能性是扩展UILabel
*以包装和解包您的类型,因为它可以将自身转换为字符串或从字符串转换。
class CustomClass {
var stringValue: String {
// Create a string somehow
}
init(stringValue: String) {
// Configure
}
}
extension UILabel {
var myText: CustomClass? {
get { return self.text.flatMap(CustomClass.init(stringValue:) }
set { self.text = newValue?.stringValue }
}
}
这样你就可以编写label.myText = instanceOfCustomClass
了。
如果有必要--即,您发现自己需要对几种类型执行此操作--您甚至可以将“字符串转换”提取到协议中,而不是依赖于特定的具体类型。
*我在这里假设是iOS;但是,同样的原理也适用于任何有var text: String? { get set }
的东西。
https://stackoverflow.com/questions/54817304
复制相似问题