我想我正在查看一些过时的代码:
@IBAction func stockLevelDidChange(sender: AnyObject) {
if var currentCell = sender as? UIView {
while (true) {
currentCell = currentCell.superview!;
if let cell = currentCell as? ProductTableCell {
if let id = cell.productId? {
var newStockLevel:Int?;
if let stepper = sender as? UIStepper {
newStockLevel = Int(stepper.value);
}
else if let textfield = sender as? UITextField {
if let newValue = textfield.text.toInt()? {
newStockLevel = newValue;
}
}
if let level = newStockLevel {
products[id].4 = level;
cell.stockStepper.value = Double(level);
cell.stockField.text = String(level);
}
}
break;
}
}
displayStockTotal();
}
}
但是在我得到的功能的第一行" ''必须跟着呼叫,成员查询或下标" (对于as
之后的问号)
此错误意味着什么?此代码如何更改为Swift 1.2?
答案 0 :(得分:17)
实际上as?
都很好。问题是这一行:
if let id = cell.productId?
只需删除末尾的问号即可。这毫无意义。
答案 1 :(得分:1)
在1.2中,toInt
消失了。所以,
if let newValue = textfield.text.toInt()?
应替换为:
if let newValue:Int? = Int(textField.text!)
答案 2 :(得分:0)
问题在于if let newValue = textfield.text.toInt()? {
..如果toInt()
返回Int?
,那么就在那里摆脱?
。