DongSup
dev's gait
DongSup
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (71)
    • flask (13)
    • iOS (11)
    • python (22)
    • CS (21)

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

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํŒŒ์ด์ฌ
  • Swift
  • ์ฒซ๊ธ€
  • ํ•œ๊ฑธ์Œ
  • ์–ธ์–ด๊ณต๋ถ€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DongSup

dev's gait

Swift ๋ฌธ๋ฒ• (extension / ์ ‘๊ทผ ์ œ์–ด / protocol / enum)
iOS

Swift ๋ฌธ๋ฒ• (extension / ์ ‘๊ทผ ์ œ์–ด / protocol / enum)

2021. 10. 19. 06:14

UILabel

 

๐Ÿ”ณ ํ•œ ์ค„ ๋˜๋Š” ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ทฐ

import UIkitclass ViewController: UIViewController {@IBOutlet weak var createLabel: UILabel!

override func viewDidLoad() {

super.viewDidLoad()

createLabel.text = "Ahn Dong Sub"

print("Ahn Dong Sub")

}

 

 

โ—ผ var text: String? : ๋ ˆ์ด๋ธ”์ด ํ‘œ์‹œํ•  ๋ฌธ์ž์—ด

์ฃผ์š” ํ”„๋กœํผํ‹ฐ

โ—ผ var attributedText: NSAttributedString? : ํ‘œ์‹œํ•  ๋ฌธ์ž์—ด

โ—ผ var textColor: UIColor! : ๋ฌธ์ž ์ƒ‰์ƒ

โ—ผ var font: UIFont! : ๋ฌธ์ž ํฐํŠธ

 

 


 

extension

 

extension Double {

var cubing : Double { //๊ณ„์‚ฐ ํ”„๋กœํผํ‹ฐ

return self * self * self

}

}

let myValue: Double = 2.0

print(myValue.cubing)

print(5.0.cubing) //Doubleํ˜• ๊ฐ’์—๋„ .์œผ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

//8.0

//125.0

 

โ—ผ ํ‘œ์ค€ ์ž๋ฃŒํ˜• Double ๊ตฌ์กฐ์ฒด์— ์„ธ์ œ๊ณฑ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€

โ—ผ get { } ์ƒ๋žต

 


 

์ ‘๊ทผ ์ œ์–ด

 

 

โ—ผ internal ์ ‘๊ทผ์€ ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ํ•ด๋‹น ๋ชจ๋“ˆ ์™ธ๋ถ€์˜ ์†Œ์ŠคํŒŒ์ผ์—์„œ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ App์ด๋‚˜ Framework์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•  ๋•Œ internal ์ ‘๊ทผ์„ ์‚ฌ์šฉํ•œ๋‹ค.

   โ—พ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ์ƒ๋žตํ•˜๋ฉด internal์ด ๊ธฐ๋ณธ

โ—ผ ๋ชจ๋“ˆ์€ ์ฝ”๋“œ ๋ฐฐํฌ(code distribution)์˜ ๋‹จ์ผ ์œ ๋‹›

   โ—พ ์•ฑ, Framework(UIKit ๋“ฑ),์™ธ๋ถ€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

   โ—พ import Alamofire

 


 

protocol ์ •์˜, ์ฑ„ํƒ, ์ค€์ˆ˜

 

protocol Runnable { //๋Œ€๋ฆฌํ•˜๊ณ  ์‹ถ์€ ํ•จ์ˆ˜ ๋ชฉ๋ก ์ž‘์„ฑ

var x : Int {get set} //์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ ํ”„๋กœํผํ‹ฐ,{get}์€ ์ฝ๊ธฐ ์ „์šฉ

//property in protocol must have explicit { get } or { get set } specifier

func run() //๋ฉ”์„œ๋“œ๋Š” ์„ ์–ธ๋งŒ ์žˆ์Œ

}

class Man : Runnable { //์ฑ„ํƒ, adopt

var x : Int = 10 //์ค€์ˆ˜, conform

func run(){print("๋‹ฌ๋ฆฐ๋‹ค~") //์ค€์ˆ˜, conform

}

}

class woMan : Runnable {

var x : Int = 0

func run(){print("๋ฉˆ์ถ˜๋‹ค~")

}

}

let dong = Man()

print(dong.x)

dong.run()

let sub = woMan()

print(sub.x)

sub.run()

//10

//๋‹ฌ๋ฆฐ๋‹ค~

//0

//๋ฉˆ์ถ˜๋‹ค~

 

โ—ผ ํŠน์ • ํด๋ž˜์Šค์™€ ๊ด€๋ จ์—†๋Š” ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)๋“ค์˜ ์„ ์–ธ ์ง‘ํ•ฉ

โ—ผ ์ƒ์†์€ ํด๋ž˜์Šค๋งŒ ๊ฐ€๋Šฅ

 


 

์ƒ์†, overloading, overriding, protocol

 

//bb()๋ผ๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•˜๋‚˜์žˆ๋Š” ํ”„๋กœํ† ์ฝœ(protocol) B

//bb()๋ฉ”์„œ๋“œ๋Š” Intํ˜• ๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ Intํ˜•์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์„œ๋“œ

//ํด๋ž˜์Šค A๋Š” ํด๋ž˜์Šค C๋ผ๋Š” ๋ถ€๋ชจ๋ฅผ ๊ฐ–๋Š”๋‹ค(C๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๋Š”๋‹ค).

//ํด๋ž˜์Šค A์—์„œ ํ”„๋กœํ† ์ฝœ B๋ฅผ ์ฑ„ํƒํ•˜๊ณ , ์ค€์ˆ˜ํ•œ๋‹ค.

//bb()๋ฉ”์„œ๋“œ๋Š” Intํ˜• ๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ๋‘ ๋ฐฐํ•œ ๊ฐ’์„ Intํ˜•์œผ๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

//ํด๋ž˜์Šค A์˜ ์ธ์Šคํ„ด์Šค a๋ฅผ ๋งŒ๋“ค๊ณ  bb๋ฅผ ํ˜ธ์ถœ

protocol B{

func bb(x:Int) -> Int

}

class C{

func bb(x:Int) -> Int {

return x*2

}

func bb(x:Double) -> Double {

return x*4

}

func bb(x:String) -> String {

return x

}

}

class A : C, B {

override func bb(x:Int) -> Int {

return x*4

}

}

var a = A()

var b = C()

var c : C = C()

print(a.bb(x:3))

print(b.bb(x:3))

print(c.bb(x:5.4))

print(c.bb(x:"DongSub"))

//12

//6

//21.6

//DongSub

 

โ—ผ ๋ถ€๋ชจ์™€ ์ž์‹์— ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ž์‹ ์šฐ์„ 

โ—ผ ๋ถ€๋ชจ์—์„œ ํ˜ธ์ถœ

โ—ผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ž๋ฃŒํ˜•์ด ๋‹ค๋ฅธ ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜

 


 

์—ด๊ฑฐํ˜•

 

enum day {

case Monday

case Tuesday

case Wednesday

case Thursday

case Friday

case Saturday

case Sunday

}

print(day.Wednesday) //์—ด๊ฑฐํ˜•๋ช….๋ฉค๋ฒ„

var week = day.Sunday

week = .Saturday //๋‘๋ฒˆ์งธ ๋ถ€ํ„ฐ๋Š” ์—ด๊ฑฐํ˜•๋ช… ์ƒ๋žต ๊ฐ€๋Šฅ

print(week, type(of:week))

var week2 : day

week2 = .Monday

switch week2 {

case.Monday:

print("์›”")

case.Tuesday:

print("ํ™”")

case.Wednesday:

print("์ˆ˜")

case.Thursday:

print("๋ชฉ")

case.Friday:

print("๊ธˆ")

case.Saturday:

print("ํ† ")

case.Sunday:

print("์ผ")

}

//Wednesday

//Saturday day

//์›”

 

โ—ผ ๊ด€๋ จ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒํ˜• ๊ฐ์ฒด

'iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

UILabel์˜ ์ฃผ์š” property  (0) 2021.11.09
๋งฅ(Mac)  (0) 2021.11.02
Swift ๋ฌธ๋ฒ• (ํด๋ž˜์Šค/ ํด๋ž˜์Šค ์ƒ์†)  (0) 2021.10.12
Swift ๋ฌธ๋ฒ• (1๊ธ‰ ๊ฐ์ฒด / 1๊ธ‰ ์‹œ๋ฏผ / ๊ธ€๋กœ์ € / ํด๋ž˜์Šค ๊ธฐ์ดˆ)  (0) 2021.10.05
Swift ๋ฌธ๋ฒ• (guard / switch-case / ํ•จ์ˆ˜)  (0) 2021.09.28
    'iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • UILabel์˜ ์ฃผ์š” property
    • ๋งฅ(Mac)
    • Swift ๋ฌธ๋ฒ• (ํด๋ž˜์Šค/ ํด๋ž˜์Šค ์ƒ์†)
    • Swift ๋ฌธ๋ฒ• (1๊ธ‰ ๊ฐ์ฒด / 1๊ธ‰ ์‹œ๋ฏผ / ๊ธ€๋กœ์ € / ํด๋ž˜์Šค ๊ธฐ์ดˆ)
    DongSup
    DongSup

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