![](/img/trans.png)
[英]Swift 3 '[UIApplicationLaunchOptionsKey : Any]?' is not convertible to '[String : NSString]'
[英]Swift: NSString not convertible to 'String'
我是Swift的新手,正在尝试将一组行返回到数组中,但是现在我陷入了一个错误循环。 任何帮助,将不胜感激。 我可能缺少了一些东西,但是肯定感觉不到:
编辑:添加代码(未设置数组的约束)。
func createButtonWithTitle(title: String) -> UIButton {
let button = UIButton(type:.System) as UIButton
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle(title, forState: .Normal)
button.sizeToFit()
button.titleLabel!.font = UIFont.systemFontOfSize(15)
button.backgroundColor = UIColor.greenColor()
button.setTitleColor(UIColor.whiteColor(), forState: .Normal)
return button
}
func createRowOfButtons(buttonTitles: [NSString]) -> UIView {
var buttons = [UIButton]()
let keyboardRowView = UIView()
for buttonTitle in buttonTitles{
let button = createButtonWithTitle(buttonTitle as String)
buttons.append(button)
keyboardRowView.addSubview(button)
}
addIndividualButtonConstraints(buttons, mainView: keyboardRowView)
return keyboardRowView
}
func createArraysOfButtons (rowTitles: [NSString]) -> UIView{
var rows = [UIView]()
let keyArrayView = UIView()
for rowTitle in rowTitles {
if let title = rowTitle as? String{
let row = createRowOfButtons(rowTitle as String)
rows.append(row)
keyArrayView.addSubview(row)
}
}
return keyArrayView
}
错误信息:
'NSString'不能隐式转换为'String'; 您是要使用“ as”进行显式转换吗?
最简单的解决方案: 不要使用NSString
func createRowOfButtons(buttonTitles: [String]) -> UIView {
var buttons = [UIButton]()
let keyboardRowView = UIView()
for buttonTitle in buttonTitles{
let button = createButtonWithTitle(buttonTitle)
buttons.append(button)
keyboardRowView.addSubview(button)
}
addIndividualButtonConstraints(buttons, mainView: keyboardRowView)
return keyboardRowView
}
func createArraysOfButtons (rowTitles: [String]) -> UIView{
var rows = [UIView]()
let keyArrayView = UIView()
for rowTitle in rowTitles {
let row = createRowOfButtons([rowTitle])
rows.append(row)
keyArrayView.addSubview(row)
}
return keyArrayView
}
主要问题是createRowOfButtons
需要一个字符串数组,但是您要将单个字符串传递给该方法。 createRowOfButtons([rowTitle])
解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.