[iOS] ์กฐ๊ฑด๋ฌธ(1), if๋ฌธ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ

2022. 2. 10. 01:08ยท๐ŸŽ iOS & Swift
๋ชฉ์ฐจ
  1. ๋“ค์–ด๊ฐ€๋ฉฐ
  2. if๋ฌธ
  3. if๋ฌธ vs ์‚ผํ•ญ ์—ฐ์‚ฐ์ž: ๋™์ผํ•œ ์กฐ๊ฑด๋ฌธ์ธ๋ฐ ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?
  4. if๋ฌธ ์นœ๊ตฌ: if let ๊ตฌ๋ฌธ
  5. ์˜คํ”ˆ ์†Œ์Šค์—์„œ ์ฐพ์•„๋ณธ if๋ฌธ
  6. ์ถ”๊ฐ€๋กœ ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  7. ๋А๋‚€ ์ 

Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์กฐ๊ฑด๋ฌธ(if๋ฌธ)

๋“ค์–ด๊ฐ€๋ฉฐ

โ˜€๏ธ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๊ณต๋ถ€์˜ ํ•„์š”์„ฑ์„ ๋А๊ปด์„œ ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€ ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋‹จ์ˆœ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š๋„๋ก ๊ณ„์† ๊ณ ๋ฏผํ•˜๊ณ  ์—ฐ๊ตฌํ•˜๋Š” ์ž์„ธ๋ฅผ ๊ฐ€์ง€๋„๋ก ํ•˜์ž. ๊ธฐ์ดˆ๋Š” ๊ฐ€์žฅ ์‰ฌ์›Œ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ์ค‘์š”ํ•ด์„œ ๊ทธ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ์„ ๊นจ๋‹ซ์ž.

 


 

if๋ฌธ

๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์‹คํ–‰ํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์“ฐ์ธ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ •๋ง ํ•„์ˆ˜์ ์œผ๋กœ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค.

์ค‘์š”ํ•œ ๊ฑด if๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ switch-case๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ• ์ง€๋Š” ์ ์ ˆํ•œ ํŒ๋‹จ์ด ํ•„์š”ํ•˜๋‹ค.

 

โœ… ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ํ–‰์œ„๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ตฌ๋ฌธ์ด๋‹ค.

โœ… ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ฑฐ๋‚˜ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

โœ… if๋ฌธ์œผ๋กœ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ switch-case๋กœ๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ ์ ˆํ•œ ํŒ๋‹จ์ด ํ•„์š”ํ•˜๋‹ค.

 

์ฝ”๋“œ ์˜ˆ์‹œ : [์ถœ์ฒ˜] ๊ฐœ๋ฐœํ•˜๋Š” ์ •๋Œ€๋ฆฌ ์ธํ”„๋Ÿฐ ๊ฐ•์˜

// ๊ฐ€์žฅ Basicํ•œ if ~ else ์กฐ๊ฑด๋ฌธ์˜ ํ˜•ํƒœ
import UIKit

var isDarkMode: Bool = true

// 1
if (isDarkMode == true) {
	print("๋‹คํฌ๋ชจ๋“œ ์ž…๋‹ˆ๋‹ค.")
} else {
	print("๋‹คํฌ๋ชจ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
}

// 2
if (isDarkMode == true) {
	print("๋‹คํฌ๋ชจ๋“œ ์ž…๋‹ˆ๋‹ค.")
} else {
	print("๋‹คํฌ๋ชจ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
}

// 3
if isDarkMode {
	print("๋‹คํฌ๋ชจ๋“œ ์ž…๋‹ˆ๋‹ค.")
} else {
	print("๋‹คํฌ๋ชจ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")
}

// ๊ฐœ์ธ์ ์œผ๋กœ 3๋ฒˆ์˜ ํ˜•ํƒœ๊ฐ€ ๊ฐ€์žฅ ๊น”๋”ํ•˜์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•œ๋‹ค.
// Boolean ๊ฐ’์˜ ๊ฒฝ์šฐ ๊ทธ ์ž์ฒด๋กœ ๋งฅ๋ฝ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 


 

if๋ฌธ vs ์‚ผํ•ญ ์—ฐ์‚ฐ์ž: ๋™์ผํ•œ ์กฐ๊ฑด๋ฌธ์ธ๋ฐ ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

์ฝ”๋“œ ์˜ˆ์‹œ : [์ถœ์ฒ˜] ๊ฐœ๋ฐœํ•˜๋Š” ์ •๋Œ€๋ฆฌ ์ธํ”„๋Ÿฐ ๊ฐ•์˜

// ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋„ ์ƒ๊ฐ๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค.
// ์ฝœ๋ก (:)์„ else์˜ ์˜๋ฏธ๋กœ ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.
var title: String = isDarkMode == true ? "๋‹คํฌ๋ชจ๋“œ ์ž…๋‹ˆ๋‹ค." : "๋‹คํฌ๋ชจ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค."
var title: String = isDarkMode ? "๋‹คํฌ๋ชจ๋“œ ์ž…๋‹ˆ๋‹ค." : "๋‹คํฌ๋ชจ๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค."

 

์ด ๋ถ€๋ถ„์€ ๊ฐ€๋…์„ฑ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•ด๋ณด์ธ๋‹ค.

 

์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ์กฐ๊ฑด์„ ๋‹จ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์งง๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ์ด ๋” ์ข‹์•„๋ณด์ด๊ธด ํ•˜๋‚˜, ๋ฌด์ž‘์ • ๋‚จ์šฉํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” if-else๋ฌธ์ด ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ๋•Œ๊ฐ€ ์žˆ๊ณ , ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๊ฐ€ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ€๋…์„ฑ์„ ์ž˜ ๊ณ ๋ คํ•˜๋ฉด ์ ์ ˆํ•œ ํŒ๋‹จ ๊ธฐ์ค€์ด ๋˜์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

 


if๋ฌธ ์นœ๊ตฌ: if let ๊ตฌ๋ฌธ

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ๋”ฐ๋กœ ๊ธฐ์ˆ ํ•  ์˜ˆ์ •์ด๋‹ค. (๊ด€๋ จ: ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ)

 

โœ… guard let ๊ตฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์˜ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

โœ… ์กฐ๊ฑด๋ฌธ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์กฐ๊ฑด์„ nil์ธ ๊ฒฝ์šฐ, ๊ทธ๋ฆฌ๊ณ  ์•„๋‹Œ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.

  • โœ”๏ธ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ฆ‰, nil์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • โœ”๏ธ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ์ฆ‰, nil์ธ ๊ฒฝ์šฐ๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฝ”๋“œ ์˜ˆ์‹œ : Alamofire/Source/Result+Alamofire.swift

// Alamofire/Source/Result+Alamofire.swift

// ์ด๋Ÿฐ ๋А๋‚Œ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ •๋ง ๊น”๋”ํ•˜๋‹ค.
// error๊ฐ€ nil์ด๋ฉด error์™€ ํ•จ๊ป˜ ์‹คํŒจ๋ฅผ ๋˜์ง€๊ณ ,
// error๊ฐ€ nil์ด ์•„๋‹ˆ๋ฉด value์™€ ํ•จ๊ป˜ ์„ฑ๊ณต์„ ๋˜์ง„๋‹ค.
init(value: Success, error: Failure?) {
    if let error = error {
        self = .failure(error)
    } else {
        self = .success(value)
    }
}

 


 

์˜คํ”ˆ ์†Œ์Šค์—์„œ ์ฐพ์•„๋ณธ if๋ฌธ

์‚ฌ์‹ค if๋ฌธ์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ฑธ์ณ์„œ ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์˜ˆ์‹œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋ฌด์˜๋ฏธํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ ‡๊ฒŒ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ๋œฏ์–ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์€ ๊ฒฝํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

๋‹ค์Œ์€ SnapKit์˜ ์ฝ”๋“œ ์ผ๋ถ€์ด๋‹ค.

 

 

1๏ธโƒฃ  updatingExisting ์ด๋ผ๋Š” Boolean ๊ฐ’์— ์˜ํ•ด์„œ if-else๋กœ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค.

2๏ธโƒฃ  first ๊ตฌ๋ฌธ: ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜

3๏ธโƒฃ  ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

์ด๊ฑด ์ทจํ–ฅ ์ฐจ์ด์˜ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์€๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ ์ด ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” 2๋ฒˆ์งธ๊ฐ€ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์•„๋ณด์ธ๋‹ค. ์™œ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ–ˆ์„๊นŒ? (์กฐ๊ฑด์ด ๋‹จ 2๊ฐœ์ด๊ณ , ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ํ•œ ์ค„์”ฉ์ด๋ฏ€๋กœ) ์ด๋Ÿฐ ์ด์œ ์ผ๊นŒ? ์ž‘๋™์ƒ์˜ ๋ฌธ์ œ๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ฒŒ ์‹ ๊ฒฝ ์“ธ ๋ถ€๋ถ„์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค.

let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute
if updateLayoutConstraint.secondAttribute == .notAnAttribute {
	updateLayoutAttribute = updateLayoutConstraint.firstAttribute
} else {
	updateLayoutAttribute = updateLayoutConstraint.secondAttribute
}

 


 

์ถ”๊ฐ€๋กœ ์ƒ๊ฐํ•ด๋ณด๊ธฐ

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๊ทธ๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค ๋•Œ๊ฐ€ ์žˆ๋‹ค. if๋ฌธ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๋ญ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ง€๋Š” ๋А๋‚Œ์ด ๋“ค์–ด์„œ ๊ดœํžˆ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž์™€ switch-case๋ฌธ์„ ์จ์•ผ ํ•˜์ง€ ์•Š์„๊นŒ๋ผ๋Š” ์ƒ๊ฐ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. ํ™ˆ ํƒญ์—์„œ๋Š” ๋‚ด ์Šค์ผ€์ค„์„ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•˜๊ณ , ๊ณต์œ  ํƒญ์—์„œ๋Š” ์นœ๊ตฌ ์Šค์ผ€์ค„์„ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ํƒญ ํƒ€์ž…์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

๋˜ํ•œ ๋‚˜๋Š” ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด๋‹ค. switch-case๋ฌธ์„ ์•Œ๊ณ  ๋‚˜๋‹ˆ๊นŒ ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค if๋ฌธ ๋Œ€์‹ ์— switch-case๋ฌธ์„ ๊ณ„์†ํ•ด์„œ ์จ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

์•„๋ž˜์˜ ์ฝ”๋“œ ์ค‘์— ์–ด๋А ๊ฒƒ์ด ๋” ๋‚˜์•„๋ณด์ผ๊นŒ? ๋‹จ์ˆœํžˆ ์กฐ๊ฑด์€ 2๊ฐœ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๊ณ , ์กฐ๊ฑด์ด ๋” ์ด์ƒ ์ถ”๊ฐ€๋  ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ตณ์ด ์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ switch-case๋ฌธ์„ ์จ์•ผํ• ๊นŒ? ๋ญ”๊ฐ€ ์ฝ”๋“œ ์ƒ์œผ๋กœ ์ข€ ๋” ๊น”๋”ํ•œ ๊ฒƒ ๊ฐ™์€ ์™ ์ง€ ๋ชจ๋ฅธ ๋А๋‚Œ์ด ๋“ค์ง€๋งŒ ๋ถˆํ•„์š”ํ•œ default case๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ๋ฌผ๋ก  share ์ผ€์ด์Šค ์•ˆ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋…€์„์„ default ์ผ€์ด์Šค ์•ˆ์— ์จ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋Ÿผ ์ฝ”๋“œ ์ƒ์œผ๋กœ ์ด๋ฏธ ์ง๊ด€์ ์ด์ง€ ๋ชปํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

switch tabType {
case .home:
    getSchedules(date: selectedDate)
    getPillList(date: selectedDate)
case .share:
    getFriendSchedules(memberId: memberId, date: selectedDate)
    getFriendPillList(id: memberId, date: selectedDate)
default:
    return
}

// or

switch tabType {
case .home:
    getSchedules(date: selectedDate)
    getPillList(date: selectedDate)
default:
    getFriendSchedules(memberId: memberId, date: selectedDate)
    getFriendPillList(id: memberId, date: selectedDate)
}
if tabType == .home {
    getSchedules(date: selectedDate)
    getPillList(date: selectedDate)
} else if tabType == .share {
    getFriendSchedules(memberId: memberId, date: selectedDate)
    getFriendPillList(id: memberId, date: selectedDate)
}

 

๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์ด ๊ฒฝ์šฐ์—๋Š” if๋ฌธ์ด ๋” ์ ์ ˆํ•ด๋ณด์ธ๋‹ค.(์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜๋„ ์œ„์—์„œ ๋‚˜๋ฆ„ ๊ทผ๊ฑฐ๋Š” ๋“ค์—ˆ๋‹ค.. ) ์‚ฌ์‹ค ์ฝ”๋“œ ์ž‘์„ฑ์—๋Š” ์ •๋‹ต์ด ์ ˆ๋Œ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ •๋ง ์ฝ”๋“œ๋ฅผ ์ž˜ ์งœ๋Š” ์‚ฌ๋žŒ๋„ ๊ทธ๋ ‡๊ฒŒ ์ด์•ผ๊ธฐ ํ•˜์ง€ ์•Š์„๊นŒ. (๋ฌผ๋ก  ๋” ๋‚˜์€ ์ฝ”๋“œ๋Š” ์žˆ๊ฒ ์ง€?)

 

์ƒํ™ฉ์— ๋”ฐ๋ผ ์ฝ”๋“œ์˜ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์ด๋‚˜ ํ˜•ํƒœ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ๋ฐ–์— ์—†์„ํ…๋ฐ, ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค ๋ณธ์ธ์˜ ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ๋˜๋Š” ๊ด€์šฉ์ ์œผ๋กœ ์“ฐ์ด๋Š” ํ˜•ํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํŒ๋‹จ์„ ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 


 

๋А๋‚€ ์ 

๊ฐ€์žฅ ํฌ๊ฒŒ ๋А๋‚€ ๊ฒƒ์€ if๋ฌธ์— ๋Œ€ํ•œ ๋ฌธ๋ฒ•๋ณด๋‹ค๋„ ์‰ฌ์šด ๋ฌธ๋ฒ•์— ์†ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ ์กฐ์ฐจ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ณ ๋ฏผ๊ณผ ์ƒ๊ฐ์„ ํ•ด๋ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์‰ฌ์šด ์ฝ”๋“œ๋ผ๋„ ํ•œ ๋ฒˆ ๋” ์ƒ๊ฐํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด์ž.

'๐ŸŽ iOS & Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] UISwitch์˜ offTintColor ๋ณ€๊ฒฝํ•˜๊ธฐ  (3) 2022.07.06
[WWDC22] What's new in SF Symbols 4  (2) 2022.07.06
[iOS] UIWindow  (0) 2021.11.07
[iOS] CollectionView Cell ๋„ˆ๋น„ ๋™์ ์œผ๋กœ ์กฐ์ ˆํ•˜๊ธฐ  (8) 2021.10.28
[iOS] ์„œ๋ธŒ ํด๋ž˜์‹ฑ  (6) 2021.10.07
  1. ๋“ค์–ด๊ฐ€๋ฉฐ
  2. if๋ฌธ
  3. if๋ฌธ vs ์‚ผํ•ญ ์—ฐ์‚ฐ์ž: ๋™์ผํ•œ ์กฐ๊ฑด๋ฌธ์ธ๋ฐ ์–ด๋–ค ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?
  4. if๋ฌธ ์นœ๊ตฌ: if let ๊ตฌ๋ฌธ
  5. ์˜คํ”ˆ ์†Œ์Šค์—์„œ ์ฐพ์•„๋ณธ if๋ฌธ
  6. ์ถ”๊ฐ€๋กœ ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  7. ๋А๋‚€ ์ 
'๐ŸŽ iOS & Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [iOS] UISwitch์˜ offTintColor ๋ณ€๊ฒฝํ•˜๊ธฐ
  • [WWDC22] What's new in SF Symbols 4
  • [iOS] UIWindow
  • [iOS] CollectionView Cell ๋„ˆ๋น„ ๋™์ ์œผ๋กœ ์กฐ์ ˆํ•˜๊ธฐ
taeeekki
taeeekki
๐ŸŒฑiOS ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ด ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ
taekki.dev๐ŸŒฑiOS ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ด ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ
taeeekki
taekki.dev
taeeekki
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • All (130)
    • ๐ŸŒฑ SeSAC (40)
    • โ˜€๏ธ 100DaysOfSwift (18)
    • ๐ŸŽ iOS & Swift (60)
    • ๐Ÿ“ฉ Essay (3)
    • ๐ŸŽ Tip (4)
    • ๐ŸŒˆ UIUX (2)
    • ๐Ÿง OOP (1)
    • ๐Ÿฅณ Side Project (0)
    • โœจ Problem Solving (1)
    • ๐Ÿ“ Note (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

์Šค์œ„ํ”„ํŠธ๋ฌธ๋ฒ•
network
์˜ต์…”๋„
์˜ค์˜คํˆฌ๋‘
Realm
URLSession
SeSAC
OOTD
IOS
๊นƒํ—ˆ๋ธŒ
์Šค์œ„ํ”„ํŠธ ๋ฌธ๋ฒ•
PageViewController
tableView
GIT
์Šค์œ„ํ”„ํŠธ
iOS ์•ฑ ์ถœ์‹œ
commit
swift
์†ํŠธ
ํด๋กœ์ €
๊ฐœ๋ฐœ
CollectionView
๊ฐœ์ธ ์•ฑ ์ถœ์‹œ
github tip
iOS H.I.G
100DaysOfSwift
Diary App
iOS UIUX
TIL
github

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLOยท Designed By์ •์ƒ์šฐ.v4.5.3
taeeekki
[iOS] ์กฐ๊ฑด๋ฌธ(1), if๋ฌธ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.