我想在UITextView的扩展中添加闭包属性,所以我使用typealias定义一个闭包:
typealias TextViewHeightDidChangedClosure = (_ currentTextViewHeight:CGFloat)->Void extension UITextView{ func setTextViewHeightDidChanged(textViewHeightDidChanged:TextViewHeightDidChangedBlock){ objc_setAssociatedobject(self,&TextViewHeightDidChangedBlockKey,textViewHeightDidChanged,objc_AssociationPolicy.OBJC_ASSOCIATION_copY_NONATOMIC) } func textViewHeightDidChanged()->TextViewHeightDidChangedBlock?{ let textChanged : ((CGFloat)->Void) = objc_getAssociatedobject(self,&TextViewHeightDidChangedBlockKey) as! TextViewHeightDidChangedBlock return textChanged } }
但它告诉我一个错误说:
Command Failed due to signal: Segmentation fault: 11.
这是错误的图像
谁能告诉我为什么,给我一个深刻有意义的解释,非常感谢你!
如果你声明一个Bool,你也可能有这个错误!在类中的属性,并尝试使用此属性创建三元条件:
var isSomething: Bool! func myFunc() { let value = isSomething ? "something" : "not" }
只需添加!在你的财产
var isSomething: Bool! func myFunc() { let value = isSomething! ? "something" : "not" }