iOS 개발일지
0712 새싹 7회차 정리 본문
iOS 앱 개발자 데뷔 과정 7회차
#0. Memo
- Tag : View에 번호를 붙여보자
View에 고유값을 부여함으로써, 코드를 짤 때 tag를 index처럼 활용할 수 있다.
- Alert : 익숙한 그것!
Alert은 사용자에게 작은 창을 띄우는 형태의 Controller로, Style은 두 종류가 있다.
UIAlert : 중앙에서 나타나며 확인, 취소와 같은 알림창 역할을 주로 함
UIAlertSheet : 하단에서 나타나며 추가기능 역할을 주로 함
Alert의 구현은 아래와 같이 크게 4단계의 구성으로 이루어진다.
기본적으로 Alert의 Button은 addAction의 호출 순서로 배치되지만, Style을 cancel로 해놓으면 항상 맨 아래/왼쪽에 위치하게 된다.
#1. Checklist
- ValueChanged (feat. Switch, Slider, datePicker)
사용자에 의해 상태가 변화되는 View들에 사용된다.
- View: tag, alpha, opacity
#0. Memo Tag : View에 번호를 붙여보자 참고
[0711 새싹 6회차 정리](https://eun-dev.tistory.com/8) #0. Memo 투명도를 조절하는 두가지 방법. Alpha vs Opacity 참고
- Enumeration
열거형: 자료형 객체
문자열, 정수값 등 입력받아야 할 정보를 입력하는 대신, 선택할 수 있도록 만든다.
조건이 많을 경우 Switch 구문을 활용해 case를 조건으로 만들어 Enumeration을 사용하면 효율적이다.
- RawValue
원시값: enum 멤버와 값의 분리
case는 그 자체로도 독립적인 값이지만, =를 통해 또 다른 독립적인 값을 저장할 수 있다.
특정 멤버에 대해서만 원시값을 지정하는것도 가능하며, 이 경우 각 항목의 이름을 그대로 원시값으로 가지게 된다.
- Print vs Return
Print : 앱에 변화를 주지 않고, 오직 개발자가 확인하는 목적으로 사용된다.
Return : 함수의 실행이 끝나면 정해진 값을 반환하여 앱에 변화를 줄 수 있다.
- Tuple
서로 다른 타입을 소괄호로 묶어 사용할 수 있다.
튜플 내에 또 다른 튜플, function type도 넣을 수 있어 '아주 간단한 구조체'라고도 한다.
튜플의 인덱스 접근은 . 을 통해 하며, 인덱스 번호 혹은 이름을 지정해 이름으로 접근할 수도 있다.
- 함수의 반환값(feat. shuffle vs shuffled, substract vs subtracting, append vs appending, etc)
같은 기능을 하는 함수인데 이름이 두개인 경우가 있다.
함수명이 -ed, -ing라면 반환값이 있고, 아니라면 반환값 없이 원본을 변화시킨다.
함수를 호출할 때 반환값이 있는지 없는지 확인할 수 있으며, 반환값이 있는 함수는 변수나 상수에 담을 수 있다.
- RawString
문자열의 앞 뒤에 #를 붙여, 모든 경계 문자(String delimiters)와 이스케이프 문자(Escape characters)가 특수 역할을 하지 않게 한다.
#"안녕하세요! \n저는 "RawString"입니다."#
print ---> 안녕하세요! \n저는 "RawString"입니다.
하지만 이렇게 \n과 같은 이스케이프 시퀀스(Escape sequence)가 제 역할을 하지 못하게 된다.
이럴 때에는 \#n과 같은 형태로 적으면 정상적인 사용이 가능하다.
모든! 이스케이프 문자가 특수 역할을 하지 않게 되기 때문에, 당연히 문자열 보간법(String Interpolation)도 일반 문자열로 인식이 된다.
var name = "RawString"
var sayHello = #"안녕하세요! 저는 \#(name)입니다."#
print ---> 안녕하세요! 저는 RawString입니다.
이럴 때 역시 \ 뒤에 #를 사용하는 것으로 해결이 가능하다.
- Override vs Overload
Overrideing : 슈퍼 클래스에서 상속할 메서드, 프로퍼티, 서브스크립트를 서브 클래스에서 원하는대로 재정의하는 것
Overloading : 함수 이름은 같으나 매개변수, 리턴타입 등을 다르게 하여 함수를 중복으로 선언하는 것
# 그 외
- 어라? UIImage의 ArgumentLabel 종류가 두개네?
UIImage를 코드로 설정할 때, 일반 Image는 named, SF Simbols은 systemName을 사용한다.
이거 몰랐을 때 고생했는데, 어찌저찌 해결하고 시간이 꽤 지난 지금에서야 왜 달랐는지 알게 되었다. 굿
- 코드로 이미지 넣는 또 다른 방법
코드로 이미지 넣을 때, #imageLiteral( 를 사용하면 눈에 보이게 설정 가능하다.
현업에서는 잘 안쓰인다고 한다.
참고로 주석처리를 하면 이미지가 코드로 변환된다.
- Content Priolity : View의 우선순위 정하기
View끼리 자리 싸움이 날 때 양보해줄 우선순위를 정해주는 것.
우선 width를 설정해주고, 등호를 부등호로 바꾸면 최소/최대 너비를 설정해줄 수 있다.
'SeSAC iOS 데뷔과정 2기' 카테고리의 다른 글
0714 새싹 9회차 정리 (0) | 2022.07.14 |
---|---|
0713 새싹 8회차 정리 (0) | 2022.07.13 |
0711 새싹 6회차 정리 (0) | 2022.07.11 |
0710 1주차 마무리 (0) | 2022.07.10 |
0708 새싹 5회차 정리 (0) | 2022.07.08 |