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 |