본문 바로가기

iOS121

참조의 종류 [Strong, Weak, Unowned] Strong(강한 참조) - 객체를 소유하여 래퍼런스 카운트가 증가하는 프로퍼티 - 값 지정 시점에 retain 되고, 참조가 종료되는 시점에 release가 됩니다. Weak(약한 참조) - 객체를 소유하지 않고 주소 값만을 가지고 있는 포인터 개념입니다. - 자신이 참조는 하지만 weak 메모리를 해제시킬 수 있는 권하는 다른 클래스에게 있습니다. - 값 지정 시 retain이 발생하지 않습니다. - 메모리가 해제될 경우 자동으로 래퍼런스가 nil로 초기화시킵니다. - weak 속성을 사용하는 객체는 항상 옵셔널 타입이어야 합니다. - retain Cycle에 의해 메모리가 누수되는 문제를 막기 위해 사용되며, 대표적으로 delegate 패턴이 있습니다. Unowned(미소유 참조) - 자신이 참조하.. 2022. 6. 7.
15, 가운데 글자 가져오기 문제 설명 - 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. - 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 - s는 길이가 1 이상, 100이하인 스트링입니다. 나의 풀이 func solution(_ s:String) -> String { if Array(s).count % 2 == 0{ return String(Array(s)[s.count/2 - 1...(s.count/2)]) } return String(Array(s)[s.count/2]) } 다른 사람의 풀이 func solution(_ s:String) -> String { return String(s[String.Index(encodedOffset: (s.count-1)/2)...String.. 2022. 6. 5.
Stack View 스택뷰 (이론) Stack View - View들을 일정한 간격으로 배치하기 위해 사용합니다. - StackView를 배치한 후, StackView 내부에 View들을 추가하여 사용 할 수 있습니다. 종류 - Horizontal Stack View : View들을 가로로 배치합니다. - Vertical Stack View : View들을 세로로 배치합니다. Distribution - Fill : 나머지 View들이 자신의 크기를 갖고, 크기가 설정되지 않은 마지막 View는 남은 전체 공간을 가집니다. - Fill Equally : Stack View의 축을 따라, 모든 View가 같은 크기로 채웁니다. - Fill Proportionally : 비율에 맞춰 StackView를 채웁니다. - Equal Spacing :.. 2022. 6. 4.
ARC와 GC의 차이점 ARC란? 2022.02.22 - [iOS/iOS 면접 질문] - ARC [ Automatic Reference Counting ] ARC [ Automatic Reference Counting ] ARC이란? - Automatic Reference Counting의 약자로 reference(참조) 타입인 클래스의 인스턴스를 관리합니다. - Swift는 앱의 메모리 사용을 추적하고 관리하는 ARC를 사용합니다. - 대부분의 경우에 메모리 작 seagreen83.tistory.com GC란? - Garbage Collection - 메모리 관리를 Garbage Collector가 프로그램 실행 중에 동적으로 감시하고 있다가, 더 이상 사용할 필요가 없다고 여겨지는 것을 메모리에서 삭제하는 것. ARC와 G.. 2022. 6. 3.
Frame과 Bounds의 차이는 무엇인가? Frame - SuperView(상위뷰) 좌표시스템 내에서의 view 의 위치(origin) 과 크기(size) Bounds - view 자기 자신의 좌표시스템에서의 위치와 크기. (부모와의 위치관계와는 아무런 관계가 없다.) - 자기 자신의 좌표시스템을 가리키기 때문에 기본적으로 origin 은 x:0, y:0 을 가리킨다. - bounds 의 origin 을 변경한다는 것은 곧, subview 들이 화면상에서 drawing 되는 위치가 변경됨을 의미하며, 이게 subview 들의 frame 값을 변화시키는게 아니다. - 부모뷰 좌표축이 변하면서 subview 가 그려져야하는 위치가 달라졌기 떄문이다. - ScrollView/TabeView 등을 스크롤 할때, scrollView.bounds 가 변하고.. 2022. 6. 2.
function / closure 각각 value type 인가 reference type 인가? Value Type - 값 타입 - 데이터를 전달할 때, 값을 복사하여 전달 - 데이터의 고유한 복사본을 가진 독립 인스턴스를 생성 - 복사한 변수의 데이터를 수정해도 원본에 영향이 없음. - struct, enum, tuple Reference Type - 참조 타입 - 데이터를 전달할 때, 값의 메모리 위치를 전달 - 암시적으로 값을 공유하는 인스턴스를 생성 - 복사 후 두 변수는 데이터의 단일 인스턴스를 참조 - 복사한 변수의 데이터를 수정하면 원본에도 영향을 줌. - closure, function, Class 2022.01.31 - [iOS/Swift 문법 심화 학습] - 값 타입과 참조 타입 값 타입과 참조 타입 클래스 / 구조체 / 열거형 클래스와 구조체, 열거형을 비교하며 값 타입과 참조 .. 2022. 5. 31.