-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Week5 Assignment - Fix Calculator & Make NetworkModel #13
base: kyungsoo
Are you sure you want to change the base?
Conversation
@@ -9,6 +9,9 @@ import Foundation | |||
|
|||
extension Numeric { | |||
var exponentialNotation: String { | |||
return Formatter.exponentialNotation.string(for: self) ?? "" | |||
guard let exponentialNotationString = Formatter.exponentialNotation.string(for: self) else { | |||
return "오류" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Error 를 정의해서 처리하면 어떨까요?
let decimal = Int(decimalString), | ||
var decimalFormat = numberFormatter.string(from: NSNumber(value: decimal)) | ||
else { return "오류"} | ||
if 1 < decimalFractionComponents.count, let fractionString = decimalFractionComponents.last { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 < decimalFractionComponents.count
decimalFractionComponents.count > 1
위 두 코드를 우리는 어떻게 읽을까요?
- 1 보다 값이 큰 경우
- 값이 1보다 큰 경우
가독성을 고려해볼까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
적절한 줄바꿈은 가독성을 증가시킬 수 있습니다
@@ -40,7 +43,14 @@ class CalculatorManager: ObservableObject { | |||
// MARK: Method(s) | |||
|
|||
func buttonColor(_ button: Button) -> (Color, Color) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
method 는 동작을 하는데, 네이밍에 동작이 없는 것 같습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Color 두개를 리턴하는데, method 만 보면 어떤걸 리턴하는지 유추하기 힘드네요
init?(htmlString: String) { | ||
let option: [NSAttributedString.DocumentReadingOptionKey: NSAttributedString.DocumentType] = [.documentType: .html] | ||
guard let htmlData = htmlString.data(using: .utf16), | ||
let nsStr = try? NSAttributedString(data: htmlData, options: option, documentAttributes: nil) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
변수명 정확히
Calculator
Network Module
예시 코드를 보고 네트워크 모듈을 설계해보고, 네이버 오픈 API를 사용해보았습니다.
코드를 참고하여 모듈을 설계하는 과정에서 AttributedString, URLComponents 등과 같은 생소한 메서드들이 많아 그 부분을 중점적으로 공부했습니다.
또한, 네트워크 모듈의 전체적인 로직을 이해하기위해 노력했습니다.
<요청을 하기 위한 메서드 로직>
이때, base주소가 동일하거나, 중복을 없애거나, 뒤에 다양한 경로가 올 수도 있기 때문에 URLComponents를 사용한다.
(메인 쓰레드에서 처리하지 않는 이유 → 메인 큐에서 동기적인 작업을 요청하면 데드락을 발생하는 경우가 생길 수도 있기 때문에 웬만하면 메인큐에서 sync를 하는 작업은 없어야 한다.)