분류 전체보기

    [TIL] Swift. ARC ( Automatic Reference Counting )

    1. What is ARC? Automatic Reference Counting 이름에서 알 수 있듯이 reference의 숫자를 자동으로 세는 메모리 관리자입니다. 이 말은 객체의 메모리 할당시 인스턴스에 reference를 저장하는 객체만 ARC의 영향을 받는다는 말입니다. 따라서 Value Type은 관리 대상이 아닙니다. 대상: Class, Closure 등 Swift는 각각의 객체에 retain counts를 가지고 있고 이 안에 Strong reference count가 0이된 것을 ARC가 메모리에서 해제합니다 2. Resource Management ViewController가 생성한 모든 뷰와 객체들은 ViewContoller의 책임 UIViewController의 LifeCycle에 따..

    Swift. 나누어 떨어지는 숫자 배열

    문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. func solution(_ arr:[Int], _ divisor:Int) -> [Int] { let check = arr.filter { ($0)%divisor == 0 } return check.count == 0 ? [-1] : check.sorted() } 1...

    [TIL] Swift. dequeueReusableCell

    dequeueReusableCell 역할 지정된 재사용 식별자에 대한 재사용 가능한 테이블 뷰 셀 객체를 반환하고, 이를 테이블에 추가합니다. 여기서의 지정된 재사용 식별자란 withIdentifier 다음에 올 문자열을 의미하고. identifier라는 이름의 문자열은 우리가 테이블뷰 셀이나 콜렉션뷰 셀을 만들때 reusable cell 의 이름을 지정해 주는 이름과 같습니다. 따라서 재사용이 가능해야 하므로 절대. nil이 올수 없다. for 다음에 오는 indexPath란 것은 이전에 테이블뷰나 컬렉션 뷰를 사용하면서 쓰게되는 메서드에서 지정했던 값이다. tableView라는 메서드는 우리가 UIKit을 이용해서 만든 뷰의 클래스를 이름으로 받고 해당 뷰의 위치를 파라미터로 받습니다. 따라서 for..

    Swift. 가운데 문자열

    문제. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 풀이. import Foundation func solution(_ s:String) -> String { var result = [String]() let arr = s.map {String($0)} let judge = arr.count%2 == 0 ? true : false if judge { result.append(arr[arr.count/2-1]) result.append(arr[arr.count/2]) } else { result.append(arr[arr.count/2]) } return resu..

    [TIL] Swift. Class 2편

    1. 언제 클래스와 구조체를 사용하는지. Struct 를 사용해야 할때 두 Object를 "같다, 다르다" 로 비교해야 하는 경우 let point1 = Point(x:3, y:5) let point2 = Point(x:3, y:5) //데이터 자체를 비교하는 경우 Struct를 쓰는게 좋다 Copy된 각 책체들이 독립적인 상태를 가져야 하는경우 var myMac = Mac(owner: "Jason") var yourMac = myMac yourMac.owner = "Jay" myMac.owner // "Jason" yourMac.owner // "Jay" 코드에서 오브젝트의 데이터를 여러 스레드 걸쳐 사용할 경우 2.Class를 사용해야 할때 두 Object의 인스턴스 자체가 같음을 확인해야 할때 하나..

    [TIL] Swift. Class 1편

    1. 기본 개념 Class란 구조체(struct)와 비슷한 것이다 관계가 있는 것들을 묶어서 표현 Object = Data + Method Object → Structure와 Class를 이용해 구현 Data → Property Method → Method Structure 메모리 관리 타입 -> Stack Fast - 당장실행 해야하거나, 컨트롤, 매니징 해야하는 것들 함수에서 변수를 만들면 스택에 생성되고 계산이 끝나고 리턴하게 되면 스택에서 제거 Class 메모리 관리 타입 → Heap Slow - Class같은 ref데이터를 저장하는데 사용합니다 Heap은 스택처럼 자동으로 데이터를 저장하지 않기 때문에 신경을 많이 써주어야한다. 변수선언시 힙과 스택의 변화 클래스 선언 → Heap 에 저장 변수..