(iOS) iOSμ±μ ꡬ쑰μ μ±μ μ€νκ³Όμ , μ΄κΈ°ν κ³Όμ
iOS μ±μ ꡬ쑰
iOSμ±μ μ¬μ©μ μ μ μ½λ, μμ€ν νλ μμν¬ κ°μ μνΈμμ©μΌλ‘ λμνλ€.
- μ¬μ©μ μ μ μ½λ (Custom code) : μνλ κΈ°λ₯κ³Ό UIλ₯Ό ꡬν ν μ μλ€.
- μμ€ν νλ μμν¬ (System Framework) : νΈμ§ν μ μλ λΆλΆ. (iOSκΈ°λ°μ μ±μ΄ μ€νλλ λ°μ νμν κΈ°λ°νκ²½μ μ 곡νλ€.)
iOS μ±μ μ€ν κ³Όμ (Object-C κΈ°λ°μΌλ)
CμΈμ΄μ λΏλ¦¬λ₯Ό λ λͺ¨λ μ±μ main()
ν¨μλ‘ μμλλ€ (Entry Point) iOSμ±λ Object-C κΈ°λ°μ΄λ―λ‘ λ§μ°¬κ°μ§μ΄λ€. νμ§λ§ iOS νλ‘μ νΈλ₯Ό μμ±νλ©΄ main()
ν¨μλ μλμΌλ‘ λ§λ€μ΄μ§λ©°, μ΄λ 건λ릴 νμκ° μλ€.
Main.m
main()ν¨μλ main.m νμΌμμ μμ±λλ€.
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,
NSStringFromClass([AppDelegate class]));
}
}
λ©μΈν¨μμ λμ
- μ±μ΄ μ€νλλ©΄μ 맨 μ²μ
main()
ν¨μκ° μ€νλλ€. main()
ν¨μλUIApplicationMain()
ν¨μλ₯Ό νΈμΆνλ€.UIApplicationMain()
ν¨μλUIApplication
κ°μ²΄λ₯Ό μμ±νλ€. μ΄ κ°μ²΄λ μ±μ 본체μ ν΄λΉλλ€.UIApplication
κ°μ²΄λ info.plist νμΌλ‘λΆν° μ± κ΅¬μ±μ νμν μ 보λ€μ λ‘λνλ€.- μ΄λ²€νΈ 루ν λ° μ΄κΈ°μ€μ μ μ§ννλ€.
- μ€ν μλ£ μ§μ μ μ± λΈλ¦¬κ²μ΄νΈμ
application(_:didFinishLaunchingWithOptions:)
λ©μλκ° νΈμΆλλ€.
UIApplicationMain()
ν¨μλ iOSμ± λΆλΆμ μνΈλ¦¬ ν¬μΈνΈκ° λλ€. κ°μ²΄λ₯Ό μμ±νλ νλ‘μΈμ€ νΈλ€λ§, κ°λ°μκ° μμ±ν 컀μ€ν μ½λλ₯Ό νΈμΆ, μ± μμ± μ΄κΈ°μ€μ μ ꡬννλ€.
import UIKit
UIApplicationMain(
CommandLine.argc, CommandLine.unsafeArgv, nil,
NSStringFromClass(AppDelegate.self)
)
- λ°νλ κ°μ²΄μΈ
UIApplication
μ μ±μ λ³Έμ²΄κ° λλ€. 컀μ€ν μ½λλ€, μ΄λ²€νΈ 루ν, νΈμ λ±... μ±μ κΈ°λ₯λ€μ λͺ¨λ ν¬ν¨ν μμκ°μ²΄κ°UIApplication
μ΄λ€.UIApplcation
μAppDelegate
μκ² κΆνμ μμνμ¬ μ»€μ€ν μ½λλ₯Ό μ²λ¦¬νλ€.
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
}
iOS μ±μ μ€ν κ³Όμ (Swift κΈ°λ°μΌλ)
μ€μννΈ κΈ°λ° νλ‘μ νΈμλ main.m
νμΌλ μκ³ , μνΈλ¦¬ ν¬μΈνΈλ μλ€.
AppDelegate.swift νμΌμ 보면 @main
μ΄λΌλ μ΄λ
Έν
μ΄μ
νκΈ°κ° μλλ°, μ΄λ
Έν
μ΄μ
μ΄ νμλ ν΄λμ€κ° λΈλ¦¬κ²μ΄νΈλ‘ μ§μ λλ€. μ΄ νκΈ°λ₯Ό ν΅νμ¬ μμμ λ§ν λ©μΈν¨μλμμ 1~5λ²μ λ체νλ€. μ΄νμ κ³Όμ μ κ°λ€.
μ¦, λ°λΌμ μ€μννΈ κΈ°λ°μ΄λ©΄ λ€μμ²λΌ λμνλ€.
@main
μ΄λ Έν μ΄μ μ μ°Ύκ³ , ν΄λΉ ν΄λμ€λ₯Ό μ€ννλ€.- 컀νΈν
μ½λμμλ
AppDelegate
ν΄λμ€μapplication(_:didFinishLaunchingWithOptions:)
λ©μλλ₯Ό νΈμΆνλ€. - (μ±μ΄ μ€νλλ μμ μ μ²λ¦¬ν΄μΌν λ΄μ©μ΄ μλ€λ©΄ μ¬κΈ° μμ±νλ©΄ λλ€.)
- μ΄λ²€νΈ 루νκ° μ€νλλ©°, μμ±ν 컀μ€ν μ½λλ€μ΄ μ€νλλ€.
- μ±μ΄ μ’
λ£λ λ, μ±μλν λ©λͺ¨λ¦¬μ κ±°λ₯Ό μνμ¬
applicationWillTerminate(_:)
λ©μλλ₯Ό νΈμΆνλ€. (μ±μ΄ μ’ λ£λλ μμ μ μ²λ¦¬ν΄μν λ΄μ©μ΄ μλ€λ©΄ μ¬κΈ° μμ±νλ©΄ λλ€)