힙에 저장되는 참조 타입은 메모리에서 해제되는지가 중요함 -> 이를 관리하는 ARC (클래스의 인스턴스에만 적용됨) 가비지컬렉션과의 차이 ARC는 컴파일 시 참조 카운팅함 장점 : 메모리 관리를 위한 시스템 자원을 추가할 필요가 없음 단점 : 규칙을 모르면 영원히 해제되지 않을 수 있음 강한 참조를 하면 참조 횟수(Reference Count)가 1 증가 nil을 할당하면 카운트가 1 감소 참조 횟수가 0이면 메모리에서 해제 강한 참조 순환(Strong Refence Cycle)문제 인스턴스끼리 서로 강한 참조할 때 참조 횟수가 0이 되지 않아 메모리에서 해제되지 않음 약한 참조 Weak Reference weak 키워드를 써주면 그 프로퍼티나 변수는 참조 횟수를 증가시키지 않음 약한 참조는 nil이 될..
프로세스 운영체제 입장에서 하나의 작업 단위 프로그램을 실행하면 그 프로그램은 -> 프로세스가 된다. (더 정확히는 메모리에 올라감+프로세스 제어 블록(PCB)이 동시에 생성) 프로그램 - 저장장치에 저장되어 있는 정적인 상태 프로세스 - 메모리에 올라온 동적인 상태 프로세스끼리는 약하게 연결되어 있음 스레드 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위 스레드끼리는 강하게 연결되어 있음 스레드는 별도의 Stack을 가지고 있음 ( Code, Data, Heap은 공유) 멀티태스크 vs 멀티스레드 멀티태스크 - 워드프로세서와 프린터 스풀러의 관계, 출력이 필요할 때만 데이터 주고받음(IPC:Inter Process Communication) 멀티스레드 - "워드프로세서"의 프..
키보드가 올라가고 내려갈때 같이 움직이는 뷰를 처리하는 방법입니다. NotificationCenter 등록된 옵저버에 정보를 담은 신호를 보내는 방식 1. NotificationCenter에 옵저버를 추가해줍니다. (show, hide 2개) NotificationCenter.default.addObserver(self, selector: #selector(adjustInputView), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(adjustInputView), name: UIResponder.keyboardWillHideN..
Framework Foundation Access essential data types, collections, and operating-system services to define the base layer of functionality for your app. Numbers, Data, and Basic Values Work with primitive values and other fundamental types used throughout Cocoa. Numbers struct Int A signed integer value type. struct Double A double-precision, floating-point value type. struct Decimal A structure rep..