목록전체 글 (79)
나만의 공부 노트
1. NSObject

후.. 코드 다 찍어보니 사진에 있는 순서가 맞네 awakeFromNib이 호출됐다고 해서 outlet, action이 연결된 건 아닌듯 1. Instantiated (초기화) (2.) awakeFromNib (이게 호출되었다면 일단 모든 뷰가 다 객체화 되었다고 보장된 것! 그러나 iboutlet, ibaction은 아직!) 3. segue preparatioin happens (다음 화면 ㄱㄱ) 4. 여기서 outlet, action 연결되는 듯 5. viewDidLoad (outlet, action 설정하기 딱이닷!) + 화면 생성, 소멸 시 view(will, did) (appear, disappear) + 뷰의 크기 변화가 있을 시 viewWillLayoutSubviews : 꼭 크기가 변화했을..
1. lazy lazy로 변수를 선언하면 처음 사용되기 전까지는 연산이 되지 않는다! - 조건 : lazy는 반드시 var로 쓰여야함 -> 나중에 연산해서 넣어주기 때문에(let 이 안되는 이유) : struct, class 에서만 사용 가능 (그렇담 값, 참조 변수 둘 다 사용 가능!) : 계산 프로퍼티에 사용이 불가능 하다(당연한 말이겠쥬?) : 저장 프로퍼티이지만 옵저버(didSet, willSet)은 사용 불가함 : 보통 클로저를 이용하여 구현함, 클로저가 저장되어 있고 처음 사용할 때 클로저가 실행되는 형태, 다른 프로퍼티에 접근시 self로 접근하자 : 값을 넣는게 아니라 클로저를 넣어버리면 클로저가 self를 계속 참조하기에 순환 문제 발생할 수 있다(weak로 만들자) 변수 선언 시 알아야..
프로토콜은 타입이다! (인터페이스이기도 하지만 타입의 역할이 더 중요한 듯) class, enum, struct에 사용 가능하고 extension으로 확장도 가능하다 프로토콜을 extension 시에 extension은 함수의 body를 구현해야한다 -> 모순이지 않는가? (인터페이스잖아!) 하지만 이렇게 하지 않으면 기존에 프로토콜을 쓰던 애들은 갑자기 생겨버린 함수에 다 깨져버리는걸 ㅜ 그렇기에 이번만큼은.. 프로토콜이 extension으로 구현한 함수의 body를 default로 받아들여준다 프로토콜은 {get}, {get set} 만 가능(저장 프로퍼티인지 계산 프로퍼티인지는 명시 안해도 됨) 익스텐션은 계산 프로퍼티만 가능 -> 저장 프로퍼티를 사용하면 init에서 문제가 발생할 수 있기에(위에..

m.blog.naver.com/PostView.nhn?blogId=jdub7138&logNo=220379745883&proxyReferer=https:%2F%2Fwww.google.com%2F [Swift] Initialization Initializer 란? Initialize는 초기화라는 뜻입니다. 여기서 초기화라는 것은 모두 0값으로 보내버리는 ... blog.naver.com 여기 완벽핟;; 아래는 따로 적고 싶은 내용 적어둠 Swift는 기본적으로 서브클래스가 수퍼클래스의 이니셜라이저들을 상속받지 않은 것을 원칙으로 하고 특별한 경우에 자동 상속을 허용한다. 이니셜라이저의 자동상속은 다음의 조건을 만족해야 한다. 1. 만약 자식 클래스에서 추가된 저장 프로퍼티가 모두 디폴트 값을 가지고 있고, ..
클로저는 참조 타입이다(힙에 저장됨) 클로저 안에서 지역변수를 strong으로 캡쳐해놓으면 카운팅 효과
일단 기본적으로 인스턴스(클래스, 구조체, 이넘)은 1. 값 타입 : 구조체, 이넘 얘로 해결하기도 하지만 보통 weak로 해결 + weak는 nil이 되지만 unowned는 nil이 될 수 없음! 강한 에러 내는데 적합함 꼭 nil이 안되어야하는 상황에서 사용(오 이런 차이가)