我想我正在查看一些过时的代码:
@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 有何改变?
最佳答案
实际上 as?
都很好。问题是这一行:
if let id = cell.productId?
只需删除末尾的问号即可。这没有意义。
关于 swift ?必须后跟调用、成员查找或下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931384/