이번 project에서는 guard문을 적극 활용해 보려 마음 먹었었다.
그래서 열심히 사용해봤고 모든 코드에서 유의미하지는 않다는걸 느끼고 있다.
if ["LoginID","LoginPW"].contains(cellID){
passHandler?(true)
}
else{
checkIcon.isHidden = false
infoText.isHidden = true
passHandler?(true)
}
Working code ↑↑↑
Not working code ↓↓↓
guard ["LoginID","LoginPW"].contains(cellID) else{
passHandler?(true)
return. //여기서 함수가 끝나버림으로 회원가입 페이지에서는 동작하지 않는구나
}
checkIcon.isHidden = false
infoText.isHidden = true
passHandler?(true)
CustomView를 사용해서 로그인과 회원가입 페이지에 같은 UI를 공유하고있다. UIupdate만큼은 다르게 주고 싶어서 각기 다른 조건을 적용해 주려고 했다.
guard문 의 경우 주석의 설명과 같이 return을 받아서 끝나버리기 때문에 이후 코드는 동작하지 않는다 로그인페이지에서만 동작하고, 회원가입 페이지에서는 동작하지 않는다. 그래서 Not working code로 보였다.
guard 문은 조건을 만족하지 않을 때 함수를 종료하는 코드
if 문은 if else와 함께 모든 조건을 처리할 때 사용
guard이 유용한 경우
- 옵셔널 바인딩을 해제
- 유효성을 검사