在 Swift 中使用协议

Using protocol in Swift

我想使用协议。我有一个 collection 视图和属于此 collection 视图的 collection 视图单元格。我在这个单元格中有一个按钮。当用户点击此按钮时,我想在 collectionview class(不是单元格 class)中调用一个方法。

我正在使用以下代码定义我的 单元格 class

protocol testPro {
    func replyClicked()
}

class MessageGalleryViewControllerCellCollectionViewCell: UICollectionViewCell {

    var test1: testPro?

    // ...
}

然后当用户点击按钮时,系统会在 单元格 class.

中调用以下方法
func replyAction(sender:UIButton!)
{
    test1?.replyClicked()

}

我的 collection 视图 class:

class ReceivedPhotosViewController: UIViewController,UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, testPro {

    func replyClicked() {
        print("clicked")
    }
}

但我看不到 "clicked" 之类的日志。所以它不起作用。问题出在哪里?

您没有将 test1 分配给您的手机。在您的 cellForItemAtindexPath 中,在实例化单元格后放置 cell.test1 = self