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 分配特定数量的项目?