본문 바로가기

프로젝트/ReminderApp clone

07. 기능개선 #1 (공백 예외처리하기)

ToolbarItem(placement: .topBarTrailing) {
    Button("Done") {

        // TODO: save function
        onSave(name, UIColor(selectedColor))

        dismiss()
    }
    .disabled(!isFormValid)
}

List의 name은 optional 속성이 아니고, 공백인 상태로 저장을 시도하면 오류가 발생하게 된다.

private var isFormValid: Bool {
    !name.isEmpty
}

이를 위해 저장을 시도하게 되는 Done 버튼은 name에 해당하는 textField가 비어있다면 비활성화되도록 구성했는데

공백에는 무력화 되는 문제가 생긴다.

extension String {
    var isEmptyOrWhitespace: Bool {
        return trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
    }
}

isEmpty를 대신할 새로운 isEmptyOrWhitespace 메서드를 하나 만들어 주고, 이를 대신해서 사용하도록 변경했다.

공백도 예외로 판단하는 걸 확인할 수 있다.