void 函数中的意外非 void 返回值(swift)

Posted

技术标签:

【中文标题】void 函数中的意外非 void 返回值(swift)【英文标题】:unexpected non-void return value in void function (swift) 【发布时间】:2020-08-17 23:36:01 【问题描述】:

我从下面的代码中收到以下错误。我不知道如何解决这个错误,也找不到有用的答案。

void 函数中出现意外的非 void 返回值

 private func collectionView( _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "a11", for: indexPath)
    
    return cell ;
 

 func UICollectionViewCell() 
 
 
 

【问题讨论】:

能否请您先查看 Apple 文档developer.apple.com/documentation/uikit/… 【参考方案1】:

func collectionView( _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) 的函数定义没有定义返回值,但您的函数返回的是 UICollectionViewCell。这就是问题的原因。此外,您可能也不希望将 cellForItemAt 设为私有方法。您应该将其更新为

func collectionView( _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "a11", for: indexPath)
    
    return cell ;

【讨论】:

【参考方案2】:

    您需要添加到您的函数返回值并删除一个私有关键字

    func collectionView(_collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 让单元格 = 集合视图 .dequeueReusableCell(withReuseIdentifier: "a11", for: indexPath)

         return cell
    

    删除此代码

    func UICollectionViewCell()

    检查此 ID“a11”的单元格是否已注册。 (在故事板或代码中,取决于您的实现)。

你能提供错误的文字吗?

【讨论】:

以上是关于void 函数中的意外非 void 返回值(swift)的主要内容,如果未能解决你的问题,请参考以下文章

void函数Swift3中的意外非void返回值

如何停止返回导致“void函数中出现意外的非void返回值”?

Swift 1.2:void 函数中出现意外的非 void 返回值

新 Swift 类的 void 函数中出现意外的非 void 返回值

类理解:void函数中出现意外的非void返回值(swift 3)

在嵌套函数中返回布尔值