πŸ‘¨β€πŸŽ“
Today I Learned
  • Today-I-Learend
  • 🍎WWDC
    • Developer Tools
      • Testing in Xcode
    • UIKit
      • UIDiffableDataSource
        • [WWDC 19] Advances in UI Data Sources
      • [WWDC2019] Advances in CollectionView Layout
  • 자료ꡬ쑰
    • Heap 자료ꡬ쑰
  • Clean code
    • 넀이밍
    • 주석과 ν¬λ§·νŒ…
    • ν•¨μˆ˜
    • 클래슀
    • μ—λŸ¬ 핸듀링
    • 가독성 높이기
    • 객체지ν–₯
  • Network
    • RestAPI
  • Swift
    • DateType
    • ARC
    • Availablity
    • KeyPath
    • Network
    • Neverνƒ€μž…
    • Result
    • Selector
    • κ²€μ¦ν•¨μˆ˜
    • λ©”νƒ€νƒ€μž…
    • λ™μ‹œμ„± ν”„λ‘œκ·Έλž˜λ°
    • λ©”λͺ¨λ¦¬ μ•ˆμ „
    • μ—λŸ¬μ²˜λ¦¬
    • μ ‘κ·Όμ œμ–΄ (Access Control)
    • μ œλ„€λ¦­
    • μ£Όμš” ν”„λ‘œν† μ½œ
  • μ•Œκ³ λ¦¬μ¦˜
    • κ·Έλž˜ν”„
    • 기초 μ•Œκ³ λ¦¬μ¦˜
    • λˆ„μ ν•©(Prefix)
    • λ³΅μž‘λ„
    • λΉ„νŠΈλ§ˆμŠ€ν‚Ή
  • 운영체제
    • 운영체제의 κ°œμš”
    • ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ
    • CPU μŠ€μΌ€μ€„λ§
    • ν”„λ‘œμ„ΈμŠ€ 동기화
    • κ΅μ°©μƒνƒœ
    • 07. λ©”λͺ¨λ¦¬
    • 08.가상 λ©”λͺ¨λ¦¬
    • μž…μΆœλ ₯ μž₯치
    • 파일 μ‹œμŠ€ν…œ
  • UIKit
    • UITableView xib으둜 λ§Œλ“€μ–΄λ³΄κΈ°
  • πŸ–ŠοΈμ •λ³΄ 기둝
    • μ½”μ½”μ•„νŒŸ λ°°ν¬ν•˜λŠ” 방법
  • iOS Project
    • μ±„νŒ… μ•± λ§Œλ“€κΈ°
      • Trouble shooting
      • 1. λ””μžμΈ
      • 2. AutoLayout
    • 날씨 쑰회 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜
      • Figmaλ₯Ό μ΄μš©ν•œ UI 섀계
      • TableView μ—°κ²°ν•˜κΈ°
      • Networking
    • MVC -> MVVM으둜 ꡬ쑰 변경해보기
      • MVC
      • MVVM
    • OAuth Project
      • 둜컬 호슀트λ₯Ό μ΄μš©ν•œ 둜그인 νŽ˜μ΄μ§€ μ œμž‘
      • Github의 OAuth App μ„€μ •
    • Rest API ν”„λ‘œμ νŠΈ
      • UI섀계 (with Figma)
      • Network Model
      • MVVM ꡬ쑰 μ „ν™˜
  • πŸ•ΆοΈUIKit
    • Compositional Layout
Powered by GitBook
On this page
  1. Swift

Selector

Selector

πŸ’‘ 속성에 μ ‘κ·Όν•˜κ±°λ‚˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” 것이 μ•„λ‹ˆλΌ, κ°€λ¦¬ν‚€λŠ” μ—­ν• λ§Œ ν•œλ‹€. μ½”λ“œ μ˜μ—­μ˜ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κ°€λ¦¬μΌœμ„œ, μ—°κ²°μ‹œν‚€λŠ” κΈ°μˆ μ΄λ‹€.

  • ν΄λ‘œμ €μ™€ μœ μ‚¬ν•˜λ‹€.

    • λ‹€λ§Œ, ν˜ΈμΆœμ€ ν•  수 μ—†κ³ , νŠΉμ • 이벀트λ₯Ό μ „λ‹¬ν•΄μ£ΌλŠ” 역할이닀.

  • λ©”μ„œλ“œ μ£Όμ†Œλ₯Ό 톡해 λ©”μ„œλ“œλ₯Ό 가리킨닀.

    • λ§€κ°œλ³€μˆ˜μ— λ©”μ„œλ“œμ˜ 이름이 λ“€μ–΄κ°„λ‹€. (μ£Όμ†Œ)

    • λ‚΄λΆ€μ μœΌλ‘œ Objective-C둜 κ΅¬ν˜„λ˜μ–΄μžˆλ‹€.

  • ꡬ쑰체 νƒ€μž…μ΄λ―€λ‘œ 가리킬 수만 있고, 싀행은 λΆˆκ°€λŠ₯ν•˜λ‹€.

μ˜ˆμ‹œ

class Dog {
    var num = 1.0

    @objc var doubleNum: Double {
        get {
            return num * 2.0
        }
        set {
            num = newValue / 2.0
        }
    }

    @objc func run() {
        print("달리닀")
    }
}

// (계산)속성을 κ°€λ₯΄ν‚¬λ•Œ
let eyesSelector = #selector(**getter**: Dog.doubleNum)    // 계산(읽기) 속성
let nameSelector = #selector(**setter**: Dog.doubleNum)    // 계산(μ“°κΈ°) 속성

// λ©”μ„œλ“œλ₯Ό κ°€λ₯΄ν‚¬λ•Œ
let runSelector = #selector(Dog.run) // ν”ν•˜μ§€ μ•Šμ€ 경우
  • 클래슀, Objective-C ν”„λ‘œν† μ½œμ— ν¬ν•¨λœ λ©€λ²„μ—λ§Œ 적용이 κ°€λŠ₯ν•˜λ‹€. (κ΅¬μ‘°μ²΄μ—μ„œ 적용 λΆˆκ°€λŠ₯)

  • λ‚΄λΆ€μ μœΌλ‘œ Objective C ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜κ³  있기 λ•Œλ¬Έμ— @objc ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€.

μ˜ˆμ‹œ

class ViewController: UIViewController {
    
    lazy var myButton: UIButton = {
        let button = UIButton(type: .system)
        button.setTitle("MyButton", for: .normal)
        button.frame = CGRect(x: 0.0, y: self.view.frame.height - 150, width: view.frame.width, height: 50.0)
        return button
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.addSubview(myButton)
        myButton.addTarget(self, action: **#selector(ViewController.doSomething(_:))**, for: .touchUpInside)
                // myButton.addTarget(self, action: #selector(doSomething), for: .touchUpInside)
                    // selfλ₯Ό μ•žμ—μ„œ μ‚¬μš©ν–ˆκΈ° λ•Œλ¬Έμ— ViewControllerλŠ” μƒλž΅ν•  수 μžˆλ‹€.
    }
    
    // μ…€λ ‰ν„°λŠ” μ˜€λΈŒμ ν‹°λΈŒCμ—μ„œ 인식할 수 μžˆλŠ” 속성/λ©”μ„œλ“œλ§Œ κ°€λ₯΄ν‚¬ 수 있음
    **@objc** func doSomething(_ sender: Any) {

    }
    
}
  • addTarget

    • μ½”λ“œλ‘œ λ²„νŠΌμ„ λ§Œλ“€μ—ˆμ„ λ•Œ, μ–΄λ–€ ν•¨μˆ˜λ₯Ό μ‹€ν–‰μ‹œν‚¬μ§€ κ²°μ •ν•΄μ•Όν–”λ‹€.

    • 즉, λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ, μ–΄λ–€ μΈμŠ€ν„΄μŠ€λ₯Ό μ‹€ν–‰μ‹œν‚¬μ§€ 적어쀄 λ•Œ μ‚¬μš©ν•œλ‹€. μ΄λ•Œ λ§€κ°œλ³€μˆ˜μ— selectorλ₯Ό 톡해 μˆ˜ν–‰νžŒλ‹€.

PreviousResultNextκ²€μ¦ν•¨μˆ˜

Last updated 2 years ago