본문 바로가기

IOS18

[Swift] #Selector() 개념 - 메서드를 식별할 수 있는 고유의 이름을 말한다. - 구조체 struct 타입이며, 컴파일 시간에 지정된다. - UIKit 내부의 Objective-C 런타임으로 실행되는 메서드에서는 #Selector()를 파라미터로 전달 받는데, 이 때 (= 이 전달에) 필요한 인스턴스의 타입을 말한다. - 함수 표기형 방식 (= 인자 레이블을 콜론(:)으로 구분하여 나열함) 으로 전달된다. (일급 객체인 함수를 매개변수로 전달하기 때문 ...! ) 사용 예시 UI 요소에 Action 관련 @objc 함수를 Target으로 추가해줄 때 → #Selector() 타입 안에다가 넣어준다. 코드 예시 override func setTargets() { super.setTargets() [signInView.signU.. 2022. 4. 19.
[iOS] 서브뷰와 addSubView 1. 화면으로 뷰를 구성하는 방식 (storyboard, xib) 에서는 파일을 생성할 때 기본적으로 View라는 바탕 뷰가 생긴다. (= SuperView) 2. 이 곳에 필요한 UI 요소들을 올려주는 것을 하위뷰를 올려준다고 표현하며, 이들은 모두 SuperView라는 바탕 뷰의 SubView가 된다. 3. 코드로 뷰를 구성할 때는 addSubView() 메서드로 관계를 직접 정의해줘야 한다. 2022. 4. 14.
override할 때 super를 꼭 붙여줘야 할까? 지난 번에 loadView() 메서드를 처음 사용하며 습관처럼 super를 붙여주었다가 뷰가 불러와지지 않아 몇시간 정도 삽질을 했었다. (다음 포스팅 참고 → [iOS] loadView() 오류: Could not load NIB in bundle '~ (loaded)' with name '~ViewController') 내가 알기로 super의 문법적 의미는 이렇다. 부모 클래스의 내용을 불러옴 (= 부모 클래스를 사용하겠다는 의미) 메서드를 오버라이딩 시 부모 메서드의 작업을 실행할 지 말지를 선택하는 것 iOS App을 개발할 때에는 보통 이렇게 사용된다. override func viewDidLoad() { super.viewDidLoad() // Do any additional setup af.. 2022. 4. 3.