Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

0712 새싹 7회차 정리 본문

SeSAC iOS 데뷔과정 2기

0712 새싹 7회차 정리

Lia's iOS 2022. 7. 12. 21:51
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