Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
안녕하세요~ @mint3382!
쥬스 메이커 STEP 2 PR 합니다! 🙏
💻 코드 설명
JuiceMaker.swift
import UIKit
를 삭제했습니다. (사실 step1 머지 이전 커밋에서 삭제했는데 반영이 안 된 것 같습니다🥺)FruitStore.swift
checkFruitStock
함수(현isAvailable(fruit:)
)에서 if문과 guard let문이 같이 사용되었는데, if let문을 사용하면 옵셔널 바인딩과 조건문을 동시에 사용할 수 있다는 것을 알게 되어 if let문으로 변경했습니다. 에러 처리를 도입한 후에는 if else문으로 상황별로 분기 처리해서 가독성을 높이도록 했습니다.JuiceMakerViewController.swift
쥬스를 만드는 화면에서 과일의 재고를 수정하는 화면으로 이동할 때 모달 프레젠테이션 방식을 사용했습니다.
쥬스를 만드는 것이 성공했는지, 실패했는지를 반환해주고 alert을 띄우기 위해 다음과 같은 코드를 작성했습니다. 처음에는 쥬스 버튼별로 코드를 나열했다가 중복되는 부분을 함수로 분리시켜 범용적으로 사용하도록 만들었습니다.
✨ 고민했던 점
함수와 변수의 네이밍
checkSufficientStock(recipe: [JuiceMenu])
, 입력된 과일의 재고가 레시피의 용량만큼 존재하는지를 Bool로 나타내주는checkFruitStock(fruitForRecipe: JuiceMenu)
의 이름을 isAvailable로 동일하되, 파라미터 형식이 다른 이름으로 변경했습니다. 또한 파라미터명도 각각 menu, fruit로 변경했습니다.내비게이션 바가 나타나지 않는 현상
JuiceMakerViewController
에서ModifyStockViewController
로 이동하는 부분에서ModifyStockViewController
로 직접 present를 하여ModifyStockViewController
의navigationBar
가 보이지 않는 문제가 발생했습니다. 이 경우ModifyStockViewController
를 바로 present 하지 않고ModifyStockViewController
가 속한navigationViewController
를 present 함으로써 문제를 해결했습니다.에러 처리
에러 처리에 대해서 처음 공부해보고 논의하여, 발생할 수 있는 에러를 enum으로 선언했습니다.
outOfStock
: 재고 부족invalidFruitName
: FruitStore에 존재하지 않는 과일 종류 입력주스를 주문하는
tryMakingJuice
함수에서 do catch문으로 주스를 만들 수 있는지 확인하고, 과일들을 소모하면서 만약 에러가 발생한다면 상황에 맞게 다른 대처를 취할 수 있도록 했습니다.의존성 주입
📝 조언을 얻고 싶은 부분
네이밍이 적절한지 궁금합니다!
로직이 괜찮은지 궁금합니다!
에러를 처리하는 위치가 어디가 좋을지 궁금합니다!
커밋 컨벤션이 적절한지 궁금합니다!