별칭

[Swift] typealias

클로저를 깔끔하게 만들어준다는데 잘 모르겠다 아래는 공식 튜토리얼 예제

class ReminderListCell: UITableViewCell {
    typealias DoneButtonAction = () -> Void
    
    @IBOutlet var titleLabel: UILabel!
    @IBOutlet var dateLabel: UILabel!
    @IBOutlet var doneButton: UIButton!
    
    var doneButtonAction: DoneButtonAction?
    
    @IBAction func doneButtonTriggered(_ sender: UIButton) {
        doneButtonAction?()
    }
}

느낌은 버튼트리거에 대한 함수를 클로저를 사용해서 각각의 컨트롤러마다 다르게 구현해줄 수 있는점

돈 액션의 타입은 void를 리턴하는 클로저()

controller에서의 구현부

cell.doneButtonAction = {
  Reminder.testData[indexPath.row].isComplete.toggle()
	tableView.reloadRows(at: [indexPath], with: .none) //아마 이거 생략하면 토글이미지가 변경이 안될거임
}