swift 1.2 版中的 iCarousel 错误(候选不是 Objc 但协议需要它)

Posted

技术标签:

【中文标题】swift 1.2 版中的 iCarousel 错误(候选不是 Objc 但协议需要它)【英文标题】:iCarousel in swift version 1.2 error (candidate is not Objc but protocol requires it) 【发布时间】:2015-04-13 17:24:17 【问题描述】:

我在 swift 1.2 中收到以下错误:'RootViewController' does not conform to protocol 'iCarouselDataSource'

在下面的类中,当我尝试实现第三方库 iCarousel 时:

class RootViewController: UIViewController,iCarouselDataSource,iCarouselDelegate
...

自动修复工具会在符合协议的该方法中放置一个@objc 标记:

@objc func carousel(carousel: iCarousel!, viewForItemAtIndex index: Int, var reusingView view: UIView?) -> UIView?

但是又出现了一个错误:Method cannot bemarked @objc because the type of parameter 3 cannot be described in Objective-C

感谢任何帮助或线索,谢谢!

【问题讨论】:

【参考方案1】:

从 reusingView 中移除 var,例如:

func carousel(carousel: iCarousel!, viewForItemAtIndex index: Int, reusingView view: UIView!) -> UIView! 
    var newView = view
    if newView == nil 
        //create new view
    
    //update data
    return newView

【讨论】:

以上是关于swift 1.2 版中的 iCarousel 错误(候选不是 Objc 但协议需要它)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 swift 在 iCarousel 库中使用 .Wrap 选项?

(Swift) 如何为单独的 iCarousels 分配特定数量的项目?

在 Swift 的 iCarousel 中预览 UIWebView

Swift - 使用 UiView 的 iCarousal

如何用动画重新加载 iCarousel?

iCarousel 上的 carouselCurrentItemIndexDidChange 仅在我滑动时被调用