'_.SegmentedControlItems' 没有实现 methodSignatureForSelector: -- 前面有问题无法识别的选择器
'_.SegmentedControlItems' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector
我正在以编程方式创建一个没有 storyboard.Instead 从数组中拉出分段项目的 UISegmented 控件,我正在尝试使用模型 Class、
class SegmentedControlItems{
let title: String
init(title:String) {
self.title = title
}
}
然后,在table视图函数中,我写了下面的代码
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
headerView.backgroundColor = UIColor.white
let items:[SegmentedControlItems] = {
let item1 = SegmentedControlItems(title: "Repeat Task")
let item2 = SegmentedControlItems(title: "One time task")
return [item1, item2]
}()
let segmentedControl: UISegmentedControl = {
let segmentedControl = UISegmentedControl(items: items)
segmentedControl.tintColor = UIColor(red:0.44, green:0.75, blue:0.27, alpha:1.0)
segmentedControl.selectedSegmentIndex = 0
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
return segmentedControl
}()
headerView.addSubview(segmentedControl)
}
如果我传递项目数组,我的应用程序可以正常工作。但是在我写完上面的代码后它崩溃了。并在控制台中给我这个错误 -
SForwarding:警告:class 'Appname.SegmentedControlItems' 的对象 0x600000251640 未实现 methodSignatureForSelector:——麻烦在前
无法识别的选择器 -[Appname.SegmentedControlItems 复制]
请帮忙
这里的问题是您提供了一个 objects 数组(它又包含作为属性的值)而不是传递一个标题数组。
如果要使用模型,则必须更改以下行
let segmentedControl = UISegmentedControl(items: items)
至
let segmentedControl: UISegmentedControl = UISegmentedControl(items: items.map({
[=11=].title
}))
我正在以编程方式创建一个没有 storyboard.Instead 从数组中拉出分段项目的 UISegmented 控件,我正在尝试使用模型 Class、
class SegmentedControlItems{
let title: String
init(title:String) {
self.title = title
}
}
然后,在table视图函数中,我写了下面的代码
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
headerView.backgroundColor = UIColor.white
let items:[SegmentedControlItems] = {
let item1 = SegmentedControlItems(title: "Repeat Task")
let item2 = SegmentedControlItems(title: "One time task")
return [item1, item2]
}()
let segmentedControl: UISegmentedControl = {
let segmentedControl = UISegmentedControl(items: items)
segmentedControl.tintColor = UIColor(red:0.44, green:0.75, blue:0.27, alpha:1.0)
segmentedControl.selectedSegmentIndex = 0
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
return segmentedControl
}()
headerView.addSubview(segmentedControl)
}
如果我传递项目数组,我的应用程序可以正常工作。但是在我写完上面的代码后它崩溃了。并在控制台中给我这个错误 - SForwarding:警告:class 'Appname.SegmentedControlItems' 的对象 0x600000251640 未实现 methodSignatureForSelector:——麻烦在前 无法识别的选择器 -[Appname.SegmentedControlItems 复制]
请帮忙
这里的问题是您提供了一个 objects 数组(它又包含作为属性的值)而不是传递一个标题数组。
如果要使用模型,则必须更改以下行
let segmentedControl = UISegmentedControl(items: items)
至
let segmentedControl: UISegmentedControl = UISegmentedControl(items: items.map({
[=11=].title
}))