迅速?必须跟着调用,成员查找或下标

时间:2015-03-08 20:15:19

标签: swift

我想我正在查看一些过时的代码:

@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?

3 个答案:

答案 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?,那么就在那里摆脱?