gpt4 book ai didi

ios - 具有可选函数实现的 Swift @objc 协议(protocol)会导致构建错误

转载 作者:行者123 更新时间:2023-11-30 12:54:13 26 4
gpt4 key购买 nike

我有以下协议(protocol)(我将其用作 Storyboard的 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

强制解包构建成功(!而不是?)

有什么理由会发生这种情况吗?我看到 Objective C 确实支持协议(protocol)中的可选函数,在我看来这就像 Xcode 的 bug...

最佳答案

我认为你需要先解开函数,然后再调用它,看看它是否不为零(仅当你使用 Objective-C 协议(protocol)桥接它时)

此博客对此进行了解释: http://useyourloaf.com/blog/swift-optional-protocol-methods/

关于ios - 具有可选函数实现的 Swift @objc 协议(protocol)会导致构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com