1

我正在使用 cocoapod XLPagerTabStrip在我的 iOS 应用程序中实现 PagerTabStrip。我在构建或运行应用程序时收到以下警告消息

变量“self”被写入,但从未读取

此警告来自以下用于在滑动时更改项目文本颜色的关闭代码。

changeCurrentIndexProgressive = { [weak self] (oldCell: ButtonBarViewCell?, newCell: ButtonBarViewCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
    guard changeCurrentIndex == true else { return }
    oldCell?.label.textColor = .lightGray
    newCell?.label.textColor = .black
}
  • 斯威夫特版本:5
  • Xcode 版本:12.1
  • XLPagerTabStrip:9.0.0

有人可以帮我摆脱这个警告信息吗?

4

1 回答 1

3

您可以安全地[weak self]从闭包捕获列表中删除,因为您没有在闭包本身中引用它,因此编译器会警告您不需要捕获它。

关闭应该是这样的

changeCurrentIndexProgressive = { (oldCell: ButtonBarViewCell?, newCell: ButtonBarViewCell?, progressPercentage: CGFloat, changeCurrentIndex: Bool, animated: Bool) -> Void in
    guard changeCurrentIndex == true else { return }
    oldCell?.label.textColor = .lightGray
    newCell?.label.textColor = .black
}

在此处阅读有关闭包和捕获列表的更多信息

于 2020-12-28T13:02:06.237 回答