๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 93

[ iOS ] URL๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์˜ฌ ๊ฒฝ์šฐ Data(contentsOf:)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋˜๋Š” ์ด์œ 

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ URL ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ Data(contentsOf:)๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ ๊นŒ? 1. Data(contentsOf:) NSData(constentsOf:)๋Š” ์ฃผ์–ด์ง„ URL๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด URL๋กœ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜จ๋‹ค๋ฉด ์ž˜ ์ž‘๋™ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๊ณต์‹๋ฌธ์„œ์—๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ URL์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ๊ณ  ๋ช…์‹œ๋˜์–ด์žˆ๋‹ค. [ iOS ] NSData(contentsOf:) init(contentsOf:) ์ฃผ์–ด์ง„ URL๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. Technology Foundation Declaration init?(contentsOf url: URL) Parame..

iOS 2022.06.07

[ iOS ] CollectionView ๊ฐ„๊ฒฉ ์กฐ์ •ํ•˜๊ธฐ

๋ฌธ์ œ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์˜ CollectionView์—์„œ cell์˜ ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•˜๊ธฐ CollectionView์˜ cell ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” UICollectionViewDelegateFlowLayout ํ”„๋กœํ† ์ฝœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. collectionView(_:layout:minimumLineSpacingForSectionAt:) ํ•œ ์„น์…˜์˜ ์—ฐ์†์ ์ธ ํ–‰ ๋˜๋Š” ์—ด ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•œ๋‹ค. collectionView(_:layout:minimumInteritemSpacingForSectionAt:) ํ•œ ์„น์…˜์˜ ๋™์ผ ํ–‰ ๋˜๋Š” ์—ด์—์„œ ์•„์ดํ…œ๋“ค์˜ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•œ๋‹ค. scroll Direction๋”ฐ๋ฅธ ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ 1. ๊ฐ€๋กœ ๋ฐฉํ–ฅ ์Šคํฌ๋กค์ผ ๊ฒฝ์šฐ, horizontally collectionView(_:layo..

iOS 2022.05.10

[ iOS ] isEnabled์™€ isUserInteractionEnabled ๋น„๊ต

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธ€๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ isEnabled์™€ isUserInteractionEnabled๋Š” ๋ฌด์Šจ ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ? 1. isEnabled ๋ž€? ํ•ด๋‹น ์ปจํŠธ๋กค์ด ํ™œ์„ฑํ™” ์ƒํƒœ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Boolํƒ€์ž…์˜ ํ”„๋กœํผํ‹ฐ UIController์˜ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ. UIController๋Š” UIButton์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์ด๋‹ค. true : ํ•ด๋‹น ์ปจํŠธ๋กค์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค. false : ํ•ด๋‹น ์ปจํŠธ๋กค์„ ๋น„ํ™œ์„ฑํ™”ํ•œ๋‹ค. ํ™œ์„ฑํ™”๋œ ์ปจํŠธ๋กค์€ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. isUserInteractionEnabled ๋ž€? ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด๋ฒคํŠธ ํ์—์„œ ์ œ๊ฑฐํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” Bool ํƒ€์ž…์˜ ํ”„๋กœํผํ‹ฐ์ด๋‹ค. UIView์˜ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ. UIView๋Š” UIController์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์ด๋‹ค. ..

iOS 2022.04.12

[ iOS ] Present๋œ ํ™”๋ฉด ๋‚ด๋ฆฐ ํ›„ ์ฒ˜์Œ ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ (popToRootViewController, present, dismiss)

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€ ๋ฌธ์ œ navigationController๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ Present Modally๋ฅผ ํ•œ ๊ฒฝ์šฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋‹ค์‹œ ์ฒ˜์Œ ํ™”๋ฉด(RootViewController)์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๊ธฐ A(navigationController) -push- B -Present- C C ๊ฐ€ Present๋œ Modal์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์ € dismiss()๋ฉ”์„œ๋“œ๋งŒ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด B ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐˆ ๋ฟ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  navigationController๊ฐ€ ์•„๋‹Œ C ํ™”๋ฉด์—์„œ UINavigaionController์˜ popToRootViewController()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์œ„ ํ™”๋ฉด์˜ ์ˆœ์„œ๋ฅผ ๋ณด๋ฉด A - B ๋Š” NavigationController์˜ navigation Stack์— ์Œ“์ธ๋‹ค. ๋”ฐ๋ผ์„œ popToR..

iOS 2022.04.12

[iOS] viewController Life Cycle ์ƒ๋ช…์ฃผ๊ธฐ

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. UIViewController๋Š” ๋ทฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ์™€ ๊ด€๋ จํ•ด ๋ทฐ์— ์‘๋‹ตํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋“ค์€ view Controller์— ์˜ํ•ด ๋ถˆ๋Ÿฌ์ ธ์•ผํ•˜๋Š” ์ˆœ๊ฐ„์— ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€ํ™”์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. UIViewController๋ฅผ ์ƒ์†๋ฐ›๋Š” ๊ฒฝ์šฐ ์ด ๋ฉ”์„œ๋“œ๋“ค์„ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ๋ทฐ ๋ณ€ํ™”๋งˆ๋‹ค ์ทจํ•  ์•ก์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ทฐ์˜ ์ƒํƒœ Appearing : ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ์ค‘ Appreared : ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด ์™„๋ฃŒ๋œ ์ƒํƒœ Disappearing : ๋ทฐ๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง€๋Š” ์ค‘ Disappreared : ๋ทฐ๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง„ ์ƒํƒœ LifeCycle ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ˆœ์„œ 1. viewDidLoad() → 2. viewWill..

iOS 2022.03.20

[iOS] ์•ฑ ๋‚ด์—์„œ ์ธ์Šคํƒ€๊ทธ๋žจ ์‹คํ–‰ํ•˜๊ธฐ (๋ฒ”์šฉ๋งํฌ Universal Link / UIApplication / URL scheme)

๋ฌธ์ œ ์•ฑ ๋‚ด์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด ์„ค์ •๋œ ์ธ์Šคํƒ€๊ทธ๋žจ ๊ณ„์ • ํ”„๋กœํ•„๋กœ ์ด๋™ํ•˜๊ธฐ @IBAction func tapBtnInstagram(_ sender: UIButton) { //1 let instagram = "https://www.instagram.com/lazy_cookie_lazy" //2 let instagramURL = NSURL(string: instagram) //3 if UIApplication.shared.canOpenURL(instagramURL! as URL) { //4 UIApplication.shared.open( //5 instagramURL! as URL, options: [:], completionHandler: nil ) } } 1. ์›ํ•˜๋Š” ๋ฒ„ํŠผ์˜ ์•ก์…˜ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 2. ์ธ์Šคํƒ€..

iOS 2022.03.13

[ iOS ] UIImageView ํด๋ฆญ ์‹œ ํ™”๋ฉด ์ „ํ™˜ - UITapGestureRecognizer

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ UIImageView ํด๋ฆญ ์‹œ ํ™”๋ฉด ์ „ํ™˜๋˜๋„๋ก ๊ตฌํ˜„ UIImageView๋ฅผ ํด๋ฆญํ•ด ํ™”๋ฉด์ „ํ™˜ ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” UITapGestureRecogniger๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. https://88yhtserof.tistory.com/40 [ iOS ] UITapGestureRecogniger UITapGestureRecogniger ๋‹จ์ผ ๋˜๋Š” ๋‹ค์ค‘์˜ tap์„ ํ•ด์„ํ•˜๋Š” ๊ฐœ๋ณ„ gersture recognizer. UITapGestureRecognizer๋Š” UIGestureRecognizer์˜ ๊ตฌ์ฒด์ ์ธ ํ•˜์œ„ ํด๋ž˜์Šค์ด๋‹ค. gersture recognizer์˜ ๊ฒฝ์šฐ, ์ง€์ •๋œ ์ˆ˜์˜ ์†.. 88yhtserof.tistory.com storyboard๋ฅผ ์‚ฌ์šฉํ•ด tapํ•  imag..

iOS 2022.01.18

[ iOS ] layout subviews๊ด€๋ จ ๋ฉ”์„œ๋“œ - viewWillLayoutSubviews, layoutSubviews, viewDidLayoutSubviews

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‚˜: ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋‚ด์šฉ layout subviews ๊ด€๋ จ ๋ฉ”์„œ๋“œ layout subviews๊ด€๋ จ ๋ฉ”์„œ๋“œ๋ž€? layout subViews ๊ด€๋ จ ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ 1. layout subviews๊ด€๋ จ ๋ฉ”์„œ๋“œ๋ž€? ViewController๊ด€๋ จ ๋ฉ”์„œ๋“œ์ธ viewDidLoad, ViewWillAppear, ViewDidAppear ๋ฉ”์„œ๋“œ๊ฐ€ ๋ทฐ๊ฐ€ ํ™”๋ฉด์— ๋ณด์ผ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ๋ ˆ์ด์•„์›ƒ์ด ํ™”๋ฉด์— ๋ณด์ผ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ํ˜ธ์ถœ ์ˆœ์„œ(๋ ˆ์ด์•„์›ƒ ๊ฒฐ์ • ์ˆœ์„œ) viewWillLayoutSubviews() -> layoutSubviews() -> viewDidLayoutSubviews() 2. layout subViews ๊ด€๋ จ ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ 2.1 viewWillLayoutSubviews() ..

iOS 2021.09.27

[ Git, Github ] Git ํ˜‘์—… ํ”Œ๋กœ์šฐ ์ข…๋ฅ˜, Git-flow

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. Git๊ณผ Github Git ํ˜‘์—… ํ”Œ๋กœ์šฐ Git-flow๋ž€? 1. Git ํ˜‘์—… ์›Œํฌํ”Œ๋กœ์šฐ 1.1 Centralized workflow ๋‹จ์ผ ์ค‘์•™ ์ €์žฅ์†Œ ์ง‘์ค‘ํ˜• ๋‹จ์ผ ์ค‘์•™ ์ €์žฅ์†Œ์™€ master ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•œ ์›Œํฌ ํ”Œ๋กœ์šฐ 1.2 Feature Branch Workflow ๊ธฐ๋Šฅ๋ณ„ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด ๊ทธ ๋ธŒ๋žœ์น˜์—์„œ๋งŒ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ž‘์—…์ด ๋๋‚˜๋ฉด ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค. 1.3 Gitflow Workflow ์•„๋ž˜ ์ž์„ธํ•œ ์„ค๋ช… ์ž‘์„ฑ. 1.4 Forking Workflow ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž์™€ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณต์‹ ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ forkํ•˜์—ฌ ๊ฐ ๊ฐœ์ธ ๋ณ„ ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž๋งŒ์ด ๊ณต์‹ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜..

Git & Github 2021.09.24

[ Git , Github ] Git๊ณผ Github๋ž€?

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. Git๊ณผ Github Git์ด๋ž€? Git๊ณผ Github์˜ ํ•„์š”์„ฑ ๊ธฐ๋ณธ Bash ๋ช…๋ น์–ด 1. Git์ด๋ž€? ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ๊ฐœ๋ฐœํ•œ Linus Torvalds๊ฐ€ ๋งŒ๋“  ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค. Git ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 1.1 ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „๊ด€๋ฆฌ ๋„๊ตฌ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฒ„์ „๋ณ„๋กœ ๋”ฐ๋กœ ์ €์žฅํ•˜์—ฌ ๋ฒ„์ „๋ณ„ ์ฐจ์ด ๋น„๊ต, ๋ถ„์„์— ์šฉ์ดํ•˜๋‹ค. ์›ํ•˜๋Š” ๋ฒ„์ „์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋™์‹œ์— ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—…์— ์œ ์šฉํ•˜๋‹ค. ๋ฒ„์ „๊ด€๋ฆฌ ์Šคํ† ๋ฆฌ ๊ฒŒ์ž„ ์‹œ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ฒŒ์ž„ ๊ธฐ๋ก์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ฒ„์ „๊ด€๋ฆฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (Day 1, Day 2, ...) ๋ฒ„์ „๊ด€๋ฆฌ Version Control ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ, ๋ฌธ์„œ, ๊ทธ๋ž˜ํ”ฝ ๋ฐ ๊ด€๋ จ ํŒŒ์ผ๋“ค์„ ..

Git & Github 2021.09.21

[ Swift ] ์˜ต์…”๋„ Optionals

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์˜ต์…”๋„ Optionals ์˜ต์…”๋„์ด๋ž€? ์˜ต์…”๋„ ์ถ”์ถœ ์Šค์œ„ํ”„ํŠธ์˜ ๋ชฉํ‘œ์— ๋งž๋Š” ์˜ต์…”๋„ ์‚ฌ์šฉ 1. ์˜ต์…”๋„์ด๋ž€? ์˜ต์…”๋„ Optionals : ์„ ํƒ ์‚ฌํ•ญ. ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„, ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜์˜ ๊ฐ’์ด nil(NULL)์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์˜ ์–ธ์–ด์  ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ธ 'Safe- ์•ˆ์ „ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€ํ–ฅ'์„ ๋ณด์ฆํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์Šค์œ„ํ”„ํŠธ๋Š” ์—„๊ฒฉํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ๋”ฐ๋ผ์„œ ์˜ต์…”๋„ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‘˜์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. (์ปดํŒŒ์ผ ์˜ค๋ฅ˜) ๋ฐ์ดํ„ฐํƒ€์ž…? ๋˜๋Š” Optional ์˜ต์…”๋„ ์ฃผ ์‚ฌ์šฉ ๋ชฉ์  nil ๊ฐ’์„ ๋Œ€์ž…ํ•ด์•ผ ํ•  ๋•Œ ์ดˆ๊นƒ๊ฐ’์ด ์—†์–ด ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด๊ฐˆ์ง€ ๋ชจ๋ฅผ ๋•Œ ์ „๋‹ฌ์ธ์ž์˜ ๊ฐ’์ด ์ž˜๋ชป๋œ ๊ฐ’์ผ ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ์Œ์„ nil๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ถˆํ•„์š” ์˜..

Swift 2021.09.05

[ Swift ] ํ•จ์ˆ˜

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ํ•จ์ˆ˜๋ž€? ํ•จ์ˆ˜์˜ ์ •์˜์™€ ํ˜ธ์ถœ ์ผ๊ธ‰ ๊ฐ์ฒด, ํ•จ์ˆ˜ ์ค‘์ฒฉ ํ•จ์ˆ˜ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ 1. ํ•จ์ˆ˜๋ž€? ํ•จ์ˆ˜๋Š” ์ž‘์—…์˜ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ด์ž ํ•˜๋‚˜์˜ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์—์„œ์˜ ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰ ๊ฐ์ฒด์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๊ฐ’๋“ค์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์—์„œ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ์ž์œ ๋„๊ฐ€ ๋†’๋‹ค. ์Šค์œ„ํ”„ํŠธ์˜ ํ•จ์ˆ˜๋Š” ์žฌ์ •์˜(์˜ค๋ฒ„๋ผ์ด๋“œ, override)์™€ ์ค‘๋ณต ์ •์˜(์˜ค๋ฒ„๋กœ๋“œ, overload)๋ฅผ ์ง€์›ํ•œ๋‹ค. ์˜ค๋ฒ„๋ผ์ด๋“œ override ์žฌ์ •์˜ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจํด๋ž˜์Šค์— ์˜ํ•ด ์ œ๊ณต๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํŠน์ •ํ•œ ํ˜•ํƒœ๋กœ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ค๋ฒ„๋กœ๋“œ overload ์ค‘๋ณต ์ •์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ ํƒ€์ž…, ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด ๊ฐ™์€ ์ด๋ฆ„์œผ..

Swift 2021.09.02
728x90