无法转换类型“(_)-> Void?”的值到预期的参数类型'(() - > Void)?

Posted

技术标签:

【中文标题】无法转换类型“(_)-> Void?”的值到预期的参数类型\'(() - > Void)?【英文标题】:Cannot convert value of type '(_) -> Void?' to expected argument type '(() -> Void)?'无法转换类型“(_)-> Void?”的值到预期的参数类型'(() - > Void)? 【发布时间】:2018-04-09 09:57:04 【问题描述】:

无法转换 '(_) -> Void?' 类型的值到预期的参数类型'(() -> Void)?'

[![在此处输入图片描述][1]][1]

[1]:https://i.stack.imgur.com/M1MYV.png`func deselectSelectedCells() 如果让开始 = startDateIndexPath var section = start.section var item = start.item + 1

        if let cell = collectionView?.cellForItem(at: start) as? AirbnbDatePickerCell 
            cell.type.remove([.InBetweenDate, .SelectedStartDate, .SelectedEndDate, .Selected])
            cell.configureCell()
            collectionView?.deselectItem(at: start, animated: false)
        

        if let end = endDateIndexPath 
            var indexPathArr = [IndexPath]()
            while section < months.count, section <= end.section 
                let curIndexPath = IndexPath(item: item, section: section)
                if let cell = collectionView?.cellForItem(at: curIndexPath) as? AirbnbDatePickerCell 
                    cell.type.remove([.InBetweenDate, .SelectedStartDate, .SelectedEndDate, .Selected])
                    cell.configureCell()
                    collectionView?.deselectItem(at: curIndexPath, animated: false)
                

                if section == end.section && item >= end.item 
                    // stop iterating beyond end date
                    break
                 else if item >= (collectionView!.numberOfItems(inSection: section) - 1) 
                    // more than num of days in the month
                    section += 1
                    item = 0
                 else 
                    item += 1
                
            

            collectionView?.performBatchUpdates(
                (s) in
                self.collectionView?.reloadItems(at: indexPathArr)
            , completion: nil)
        
    
`

【问题讨论】:

删除(s) in? 在可能的情况下粘贴代码而不是使用屏幕截图,这样可以让他人更轻松地尝试测试您的示例,谢谢! 【参考方案1】:

错误告诉您解决方案。 performBatchUpdates 接受不带参数的回调,但你在那里定义了一个参数。

删除performBatchUpdates(第40行)下声明回调参数的(s) in行。

【讨论】:

当我隐藏该行时我遇到了另一个问题,日历之间不显示月份 我已经粘贴了代码让我有解决方案吗?

以上是关于无法转换类型“(_)-> Void?”的值到预期的参数类型'(() - > Void)?的主要内容,如果未能解决你的问题,请参考以下文章

无法转换“Foo!”类型的值到预期的参数类型'Foo!'

无法转换“CGPoint!”类型的值到预期的参数类型'UnsafeMutablePointer<CGPoint>'

无法转换类型“[String : AnyObject]?”的值到预期的参数类型“[NSAttributedStringKey:Any]?”

无法转换类型“Meme!”的值到预期的参数类型'@noescape (Meme) throws -> Bool'

无法转换类型“Range<Int>?”的值到预期的参数类型'Range<String.Index>?

无法转换类型“[String]?”的值到预期的参数类型“字符串?”快速显示结构中的图像时