-
200914 - TILTIL/2021 2020. 9. 15. 16:50
Swfit 문법
Optional에 대해서 공부했다. 처음에는 어려운 개념이었는데 계속 반복을 하다 보니 이해가 됐다. 가장 기억해야 할 점은 !은 내가 코드에 작성하는 일은 없어야 한다. 추출은 Optional binding으로 처리를 하자.
- Non-optional은 사용하기 전에 값을 가져야 한다.
- nil: 값을 저장하지 않는다는 것을 표현하는 키워드
- Unrapping
- ! (Forced Unwrapping Operator)
- Optional Binding
- guard 구문을 이용한 Optional Binding
- IUO ( Implicitly Unwrapping Optionals)
- ?? (Nil-coalescing Operator)
- Optional Chaining
- Chaining
nil-coalescing Operator인 ?? 과 삼항연산자 ? : 의 사용을 잘 구분해야 한다. ?? 은 조건을 분기할 때 사용하는 연산자가 아니다.
Function에 대해 공부했다.
- Parameter
- Argument
- Argument rabel
- Return
- Funtion lifecycle
- Parameter dafualt value
- Inout parameter
- Variadic parameter
- Function type
- Function notation
- (), Void
Function과 Method는 다르다는 것을 기억해야 한다.
Funcion
- {} 밖에서 정의
- 함수안에서 정의
- 메서드 안에 정의
Method
- 타입(열거형, 구조체, 클래스)의 {}에 정의
Argument와 Parameter는 자세히 들어가면 다른 개념이다.
func add(_ a: Int, _ b: Int) -> Int { return a + b } add(10, 20)
Argument는 함수를 호출할때 실제 사용하는 값 : 10, 20
Parameter는 argument를 받아 함수 내부에서 사용되는 값: a, b
Variadic parameter를 호출할때 argument와 parameter를 구분 못하였는데 공부를 하고 이해했다.
func sum(_ nums: Int...) { var sum = 0 for num in nums { sum += num } print(sum) } sum(1, 2) //argument 2개, parameter 1개
Function type에서 () -> () 에서 뒤 ()는 Void지만 앞 ()은 Void가 아니라 파라미터가 없다를 뜻한다.
iOS
새로운 특별한 것을 공부하지는 않았고 배운 문법을 적용해보는 연습을 했다.
사용자가 원하지 않는 문자,숫자를 입력했을 때 경고문을 해야 하는데 경고창을 어떤 방식으로 작성해야 의미가 잘 전달되면서 사용자의 기분을 상하지 않게 할까 고민을 했다. 더 좋은 방법이 떠오르면 수정해야겠다.
guard let rightStr = rightField.text, let rightNum = Double(rightStr) else { //경고창 presentAlert(title: "⚠️", message: "오른쪽 칸에 숫자를 입력해주세요.") rightField.becomeFirstResponder() return }
오른쪽 텍스트에 숫자가 입력이 안됐으면 오른쪽 텍스트에 커서가 오게 만들었는데 현재 커서 위치가 왼쪽이나 중간에 있는 상태에서 입력을 안 하고 계산을 누르면 이동을 안 하고 현재 커서에 위치했다. 문제가 없어 보이는데 이유를 고민해봐야겠다.
200916추가 : 순서가 잘못됐다. 경고창이 뜨면 컨트롤 할 수 없는 상태가 된다.
guard let rightStr = rightField.text, let rightNum = Double(rightStr) else { //경고창 rightField.becomeFirstResponder() presentAlert(title: "⚠️", message: "오른쪽 칸에 숫자를 입력해주세요.") return }
정상적으로 작동됐다. 전에 공부한 내용인데 까먹었다니ㅠㅠ 반성하자. 1
그 외
공부 외 다른 시간을 많이 쓰게 만드는 워드프레스에서 사용이 더 쉬운 티스토리로 옮겼다.
- 200916추가 [본문으로]
728x90'TIL > 2021' 카테고리의 다른 글
200917 - TIL (1) 2020.09.18 200916 - TIL (1) 2020.09.17 200910 - TIL (0) 2020.09.15 200909 - TIL (0) 2020.09.15 200908 - TIL (0) 2020.09.15