Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何扩展UITextView类?_Ios_Oop_Swift3_Uitextview - Fatal编程技术网

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。