我收到关于可选性的警告:
pickerView的结果具有与预期不同的选项 protocol uipickerviewdelegate。
协议似乎要求我返回一个隐式解包的可选String,但我不知道该怎么做。
import UIKit
class TimerViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet var timerPickerView: UIPickerView!
let timerPickerData = [Array(1...24), Array(1...60), Array(1...60)]
...
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return String(timerPickerData[component][row])
}
}
答案 0 :(得分:3)
这是该委托方法的Swift签名:
optional public func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
你可以在它的最后看到它应该返回一个可选字符串(String?
),而不是像你一样隐式解包的可选字符串(String!
)。因此,警告的原因是因为协议与您的实现之间的方法签名不同,特别是您将可选性从常规可选项更改为隐式展开的可选项。