swift - 命令因信号 : Segmentation fault: 11 while emitting IR SIL function 而失败

标签 swift properties closures runtime extension-methods

我想在 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.

这是错误的图片

my code

谁能告诉我为什么并给我一个深刻有意义的解释,非常感谢!

最佳答案

如果您在类中声明 Bool! 属性并尝试使用此属性创建三元条件,您也可能会遇到此错误:

var isSomething: Bool!

func myFunc() {
    let value = isSomething ? "something" : "not"
}

只需添加 !在您的属性(property)上

var isSomething: Bool!

func myFunc() {
    let value = isSomething! ? "something" : "not"
}

关于swift - 命令因信号 : Segmentation fault: 11 while emitting IR SIL function 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40968517/

相关文章:

swift - 如何在 Swift 中选择具有 NSRange 的 textView 中的文本?

java - 无法编辑通过 Class.getResource() 加载的属性文件

c++ - AOT编译语言是如何实现匿名函数的?

ios - tableViewCell 中的 UIButtons,如何使用 Swift 从 Parse 获取已经关注的用户

iOS GCM 通知发送,但不显示

ios - 在 SKLabelNode 中识别触摸的问题

java - 如何在 spring boot 中从 message_ru_RU.properties 加载俄语(西里尔字母,utf-8)文本?

javascript - Javascript 中 value.x 和 value[x] (从数组获取属性)之间的区别?

javascript - 将模块模式与闭包相结合的最佳方式

python - 带有两个内部函数的闭包 python