Ios 如何扩展UITextView类?
我只需要向Ios 如何扩展UITextView类?,ios,oop,swift3,uitextview,Ios,Oop,Swift3,Uitextview,我只需要向UITextView类添加一个额外变量 我的第一次尝试: extension UITextView { var id : String } extension UITextView { var id : String { get { return self.id } set(newValue) { self.id = newValue } } } 但它会发出错误消息扩展可能不包含存储的属性 第二次尝试: extension UITextVi
UITextView
类添加一个额外变量
我的第一次尝试:
extension UITextView
{
var id : String
}
extension UITextView
{
var id : String
{
get { return self.id }
set(newValue) { self.id = newValue }
}
}
但它会发出错误消息扩展可能不包含存储的属性
第二次尝试:
extension UITextView
{
var id : String
}
extension UITextView
{
var id : String
{
get { return self.id }
set(newValue) { self.id = newValue }
}
}
但当我尝试在var id
中赋值时,它会压碎我的应用程序并给出错误消息thread1:EXC\u BAD\u ACCESS
如何在var id
中赋值并打印
我只需要向UITextView类添加一个额外变量
无法在扩展中添加存储的属性。唯一的方法是使用计算属性和关联对象,但这很难看。您应该编写一个继承UITextView的类
如果确实无法将UITextView子类化,请查看如何使用具有计算属性的关联对象的答案
我只需要向UITextView类添加一个额外变量
无法在扩展中添加存储的属性。唯一的方法是使用计算属性和关联对象,但这很难看。您应该编写一个继承UITextView的类
如果你真的不能将UITextView子类化,那么看看如何使用与计算属性相关联的对象。不,你不能这样做,因为属性需要存储,添加属性会改变类的内存结构,并在可用性方面引入大量其他问题
扩展旨在增强行为,而不是从根本上改变类。因此,如果需要向类添加其他属性,可以使用使用父类作为UITextView
的子类,因为属性需要存储,添加属性会改变类的内存结构,并在可用性方面引入大量其他问题
扩展旨在增强行为,而不是从根本上改变类。因此,如果需要向类添加其他属性,可以使用子类来完成,子类使用父类作为UITextView
使用关联对象我解决了我的问题
这是我的源代码(Swift3)
感谢mag_zbc和rmaddy提供的有用答案 使用关联对象我解决了我的问题
这是我的源代码(Swift3)
感谢mag_zbc和rmaddy提供的有用答案 我尝试了所谓的丑陋
方式,但它说使用未解析标识符OBJC_关联_复制_非原子
,这里怎么了?@Roy查找Swift 3。我尝试了所谓的丑陋
方式,但它说使用未解析标识符OBJC_关联_复制_非原子
,“这里出了什么事?”罗伊寻找斯威夫特3。