我想在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
}
}
但它告诉我一个错误,说:
由于信号而失败的命令:分段错误:11。
这是一个错误的图片。
有人能告诉我为什么并给出一个深刻而有意义的解释吗?非常感谢!
isSomething
为 nil,则强制解包隐式可选项isSomething!
将导致段错误。 - andrewz