首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有可选函数实现的Swift @objc协议导致构建错误

带有可选函数实现的Swift @objc协议导致构建错误
EN

Stack Overflow用户
提问于 2016-11-16 03:18:00
回答 1查看 378关注 0票数 0

我有以下协议(我使用它作为对故事板的IBOutlet引用,所以它必须与@objc一起使用)。

代码语言:javascript
复制
/// 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)
}

当我尝试使用快速语法访问可选函数时,如下所示:

代码语言:javascript
复制
self.cineamsView.setSortingMenuFrame?(newFrame: CGRect())

它的结果是

代码语言:javascript
复制
Command failed due to signal: Segmentation fault: 11

强制取消包装生成成功时(!而不是?)

有什么理由会发生这种情况吗?我看到objective C确实支持协议中的可选函数,在我看来这是一个Xcode错误……

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 03:44:29

我认为在调用函数之前,您需要先解开函数,看看它是否不是nil (只有在使用objective-c协议桥接它的情况下)

这个博客解释了这一点:http://useyourloaf.com/blog/swift-optional-protocol-methods/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40617971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档