Swift/기초 카테고리에 업로드한 모든 내용은 KxCoding 기초 강의를 토대로 작성하였습니다.

⎮ Swift Standard Library
ex) sort, sorted, append, appending ∙∙∙
1. ed, ing : 원래 값을 그대로 두고, 작업의 결과를 새로운 값으로 리턴
2. 동사 원형 : 원래 값에서 바로 작업(리턴이 없을 수 있음)
* 예외도 있음. (filter 같은 함수)
var str = "Hello"
str.append("Swift")
print(str)
HelloSwift
str.appending("!!!") // 이 단계에서는 HellowSwift!!! 이지만,
print(str)
HelloSwift // 리턴 값이 없어서 HelloSwift로 리턴됨
⎮ sorted와 sort의 차이
1. sorted() : 배열에 있는 값을 정렬해서 리턴

2. sort : 현재의 배열을 직접 정렬(리턴 없음)

⎮ 랜덤 숫자 저장하기
1. 기존의 코드는 배열을 만들고, 배열에 숫자를 저장하는 방식

2. 코드 변경
// let sortedNums = nums.sorted() 를
let sortedNums = nums.sort
// 오류 발생 : nums.sort는 리턴 값이 없으므로 상수에 저장할 수 없음.

3. 상수를 선언하는 코드 삭제

4. sortedNums[index]를 nums[index]로 변경 * 나름의 메모리 절약

⎮ UI 오류 해결하기
label.layer.cornerRadius = label.bounds.width / 2
1. 시뮬레이터를 세로로 실행하면 가로에서 UI 오류 발생. * Stack View를 설정할 때 label의 너비를 균등분할(Fill Equally) 설정


2. 시뮬레이터를 가로로 실행하면 세로에서 UI 오류 발생.


3. 코드 수정 * 화면을 회전시킬 때마다, cornerRadius를 다시 계산하기
override func viewWillTransition(to size: CGSize, with coordinator: any UIViewControllerTransitionCoordinator
){
code
}

4. 코드 추가
super.viewWillTransition(to: size, with: coordinator)

5. 코드 추가

6. Return키 누르기

7. 코드 추가


8. 전체 적용

9. 코드 개선

10. .enumerated() 삭제

11. labels를 찾을 수 없는 오류 발생

12. 위치를 조정해도 오류 발생

(아울렛은 1:1로 연결되기 때문에, 여러 아울렛에 동일하게 적용하기 위해서 배열에 담았던 것)
13. 원래대로 되돌리고, 다시 아울렛 연결(Outlet Collection)

14. 나머지 label 연결

15. 코드 변경

16. 불필요한 코드 정리

⎮ 클로저 안에서 외부의 값을 호출할 때는 self를 반드시 써야한다

'Swift > 기초' 카테고리의 다른 글
| 29. 스위프트 기초 문법[계산기(8) - 코드 분석] (0) | 2025.02.04 |
|---|---|
| 28. 스위프트 기초 문법[계산기(7) - Closure] (0) | 2025.02.03 |
| 26. 스위프트 기초 문법[로또(5) - 튜플] (0) | 2025.02.02 |
| 25. 스위프트 기초 문법[날씨(5) - 코드 개선, 레퍼런스 보는 방법] (0) | 2025.02.01 |
| 24. 스위프트 기초 문법[날씨(4) - Return, 함수 호출] (1) | 2025.02.01 |