I am trying to learn XCode by following the Stanford University cs193p course Winter 2017.
I am trying to do the FaceIT exercise lectures 4 & 5.
I mostly get this error: 'Argument passed to call that takes no arguments'.
There are 3 Swift files, they are: FaceView.swift, ViewController.swift and FacialExpression.swift.
I am getting the error in 2 files: ViewController and FacialExpression.
Here are the files:
Code:
//  ViewController.swift
//  FaceIt
//
//  Created by Tony Hudson on 05/02/2018.
//  Copyright  2018 Tony Hudson. All rights reserved.
//

import UIKit

class ViewController: UIViewController
{

    var expression = FacialExpression(eyes: .closed, mouth: .frown) {   //Argument passed to call that takes no arguments - hat symbol under ^  closed  
        didSet {
            updateUI()         //Argument passed to call that takes no arguments
        }
    }
            
    private func updateUI()
    {
        switch expression.eyes {
            
        case .open:
            FaceView?.eyesOpen = true
        case .closed:
            FaceView?.eyesOpen = false
        case .squinting:
            FaceView?.eyesOpen = false
        }
        FaceView?.mouthCurvature = mouthCurvatures[expression.mouth] ?? 0.0
    }
    private let mouthCurvatures =
        [FacialExpression.Mouth.grin:0.5,.frown:-1.0,.smile:1.0,.neutral:0.0,.smirk:-0.5]

    @IBOutlet weak var FaceView: FaceView! {
        didSet {
            let handler = #selector(FaceView.changeScale(byReactingTo:))
            let pinchRecognizer = UIPinchGestureRecognizer(target: FaceView, action: handler)
            FaceView.addGestureRecognizer(pinchRecognizer)
            let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(toggleEyes(byReactingTo:)))
            tapRecognizer.numberOfTapsRequired = 1
            FaceView.addGestureRecognizer(tapRecognizer)
            let swipeUpRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(increaseHappiness))
            swipeUpRecognizer.direction = .up
            FaceView.addGestureRecognizer(swipeUpRecognizer)
            let swipeDownRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(decreaseHappiness))
            swipeDownRecognizer.direction = .down
            FaceView.addGestureRecognizer(swipeDownRecognizer)
            updateUI()
        }
    }
    func increaseHappiness()
 {
        expression = expression.happier
    }
    func decreaseHappiness(){
        expression = expression.sadder
    }
    func toggleEyes(byReactingTo taprecognizer: UITapGestureRecognizer){
    
        if taprecognizer.state == .ended {
            let eyes: FacialExpression.Eyes = (expression.eyes == .closed) ? .open : .closed
    expression = FacialExpression(eyes: eyes, mouth: expression.mouth)
    
        }
    }
}
Code:
//  FacialExpression.swift//  FaceIt
//
//  Created by Tony Hudson on 08/02/2018.
//  Copyright  2018 Tony Hudson. All rights reserved.
//


import Foundation


struct FacialExpression {
    enum Eyes: Int {
        case open
        case closed
        case squinting
    }
    enum  Mouth: Int {
        case frown
        case smirk
        case grin
        case neutral
        case smile

        var sadder: Mouth {
            return Mouth(rawValue: rawValue - 1) ?? .frown
        }
        var happier: Mouth {
            return Mouth(rawValue: rawValue + 1) ?? .smile
        }
    }
var sadder: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.sadder)
    }
var happier: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.happier)
}                         //  FacialExpression.swift
//  FaceIt
//
//  Created by Tony Hudson on 08/02/2018.
//  Copyright  2018 Tony Hudson. All rights reserved.
//


import Foundation


struct FacialExpression {
    enum Eyes: Int {
        case open
        case closed
        case squinting
    }
    enum  Mouth: Int {
        case frown
        case smirk
        case grin
        case neutral
        case smile

        var sadder: Mouth {
            return Mouth(rawValue: rawValue - 1) ?? .frown
        }
        var happier: Mouth {
            return Mouth(rawValue: rawValue + 1) ?? .smile
        }
    }
var sadder: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.sadder)
    }
var happier: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.happier)
}                        //  FacialExpression.swift
//  FaceIt
//
//  Created by Tony Hudson on 08/02/2018.
//  Copyright  2018 Tony Hudson. All rights reserved.
//


import Foundation


struct FacialExpression {
    enum Eyes: Int {
        case open
        case closed
        case squinting
    }
    enum  Mouth: Int {
        case frown
        case smirk
        case grin
        case neutral
        case smile

        var sadder: Mouth {
            return Mouth(rawValue: rawValue - 1) ?? .frown
        }
        var happier: Mouth {
            return Mouth(rawValue: rawValue + 1) ?? .smile
        }
    }
var sadder: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.sadder)
    }                    //Argument passed to call that takes no arguments    
var happier: FacialExpression {
        return FacialExpression(eyes: self.eyes, mouth: self.mouth.happier)
}                            //Argument passed to call that takes no arguments
    let eyes = Eyes
    let mouth = Mouth   //Expected member name or constructor call after type name triangle points to space after Mouth
}
Demo code can be seen on Google Drive owner: Digit77.com
I have checked through the code and I can't spot any typos.
Your help would be appreciated.