讨论
孙悟空挞蝶 头像
孙悟空挞蝶  2016-10-25 19:23

enum VendingMachineError: ErrorType { case InvalidSelection //选择无效 case InsufficientFunds(coinsNeeded: Int) //金额不足 case OutOfStock //缺货 }

ErrorType 已经修改为 Error

孙悟空挞蝶 头像
孙悟空挞蝶  2016-10-25 19:33

dispenseSnack(name)

在Xcode8中需要编写成

dispenseSnak(snack: name)



孙悟空挞蝶 头像
孙悟空挞蝶  2016-10-25 19:58

var vendingMachine = VendingMachine() vendingMachine.coinsDeposited = 8 do { try buyFavoriteSnack("Alice", vendingMachine: vendingMachine) } catch VendingMachineError.InvalidSelection { print("Invalid Selection.") } catch VendingMachineError.OutOfStock { print("Out of Stock.") } catch VendingMachineError.InsufficientFunds(let coinsNeeded) { print("Insufficient funds. Please insert an additional \(coinsNeeded) coins.") } // 打印 “Insufficient funds. Please insert an additional 2 coins.”

这个举例在Xcode8编译不过,应该为

func testError() {

        let vendingMachine = VendingMachine()

        vendingMachine.coinsDeposited = 8

        

        do {

            try buyFavoriteSnack(person: "Alice", vendingMachine: vendingMachine)

        } catch VendingMachineError.InvalidSelection {

            print("Invalid Selection")

        } catch VendingMachineError.OutOfStock {

            print("Out of stock")

        } catch VendingMachineError.InsufficientFunds(let coinsNeeded) {

            print("Insufficient funds. Please insert an additional \(coinsNeeded) coins")

        } catch {

            

        }

    }