簡體   English   中英

具有可選功能實現的Swift @objc協議會導致生成錯誤

[英]Swift @objc protocol with optional function implemention causes build error

我有以下協議(我將其用作對情節提要的IBOutlet引用,因此必須與@objc一起使用)。

/// This protocol implemented by views that contain a **main** 
    collection view.
@objc protocol CollectionInViewMethods {

      /// Notify the view that scrolling occurred.
      @objc optional func setSortingMenuFrame(newFrame: CGRect)
}

當我嘗試使用swift語法訪問可選函數時,如下所示:

self.cineamsView.setSortingMenuFrame?(newFrame: CGRect())

哪個結果

Command failed due to signal: Segmentation fault: 11

在強制展開構建成功的同時(!而不是?)

有什么理由要發生嗎? 我看到目標C確實支持協議中的可選功能,在我看來,這就像一個Xcode錯誤...

我認為您需要先解開該函數,然后再調用它(如果僅使用Objective-C協議將其橋接),看它是否不是nil

該博客對此進行了解釋: http : //useyourloaf.com/blog/swift-optional-protocol-methods/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM