首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中,"myViewController“类型不符合UIPIckerDataSource协议

在Swift中,"myViewController“类型不符合UIPIckerDataSource协议
EN

Stack Overflow用户
提问于 2014-07-26 12:11:32
回答 5查看 43K关注 0票数 39

我只是在Swift中创建了一个新的类,它叫做myViewController,它是一个UIViewController。现在我试着把它变成UIPickerViewDelegate和DataSource,但是我犯了一个奇怪的错误

代码语言:javascript
复制
import UIKit

class myViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
   ...
}

上面写着Type "myViewController" does not conform to protocol UIPIckerDataSource而不是UIPickerViewDataSource。

是Xcode-Beta 3的一个bug吗??

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-26 12:27:59

如果要遵守这些协议,则需要实现UIPickerViewDataSourceUIPickerViewDelegate的所有必需方法。

Swift在协议方面更像java,因为如果您不实现协议声明的所有必需方法,您将得到编译时错误,而不是运行时异常。

票数 55
EN

Stack Overflow用户

发布于 2016-12-07 00:04:57

Fix-如果使用的是Swift 3,则在XCode 8.1中插入以下方法的不推荐版本:

代码语言:javascript
复制
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return componentNumber
}

在XCode 10.0+中

代码语言:javascript
复制
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return componentNumber
}
票数 15
EN

Stack Overflow用户

发布于 2014-07-26 12:33:52

在文档中实现UIPickerDataSource所需的方法。

数据源为选择器视图提供组件数量和每个组件中的行数,用于显示选择器视图数据。本协议中的两种方法都是必需的.

所以您需要实现这些方法

代码语言:javascript
复制
func numberOfComponentsInPickerView(_ pickerView: UIPickerView!) -> Int {}

   func pickerView(_ pickerView: UIPickerView!,
numberOfRowsInComponent component: Int) -> Int{}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24970877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档