
스위프트 표준 라이브러리의 대부분의 데이터 타입은 Equatable프로토콜을 준수합니다. Equatable 프로토콜은 == 를 사용해 같은지 비교할 수 있습니다. 또 != 를 사용해서 다른지 비교할 수 있습니다. 아래 코드는 Kofi가 students배열["Kofi", "Abena", "Efua", "Kweku", "Akosua"]에 포함되어 있는지 확인하는 작업입니다. let students = ["Kofi", "Abena", "Efua", "Kweku", "Akosua"] let nameToCheck = "Kofi" if students.contains(nameToCheck) { print("\(nameToCheck) is signed up!") } else { print("No record of \..

수요일에 받은 코드 리뷰를 통해 좋은 말씀들을 많이 해주셔서 하나씩 학습해 정리해보려 합니다. 그중에서도 제네릭과 프로토콜을 활용해 dequeueReusableCell을 어떻게 처리하는지 알아보았습니다. 먼저 테이블 뷰에 테이블 뷰 셀을 나타내게 하려면 어떻게 하시나요. 테이블 뷰는 데이터 자체를 관리하지는 않고, 표현되는 데이터만 관리합니다. 그래서 우리는 UITableViewDataSource를 채택해 필수 메소드를 적어줍니다. 이 친구들이 관리를 합니다. 아래는 UITableViewDataSource에 필수 메소드를 작성한 코드입니다. // Return the number of rows for the table. override func tableView(_ tableView: UITableView..
Q delegate는 왜 Weak로 선언할까요? A Retain cycle 을 피하기 위해서! 기본적으로 클래스의 객체를 가리키는 각각의 reference는 강함 참조(strong)입니다.두 클래스 인스턴스가 서로 강한 참조를 하게 되면 그것이 Retain Cycle이 됩니다. 서로 강한 참조를 하고 있으면 사용하지 않는데도 deinit 되지 않습니다. 만약에 객체에 대한 강한 참조가 존재하지 않는다면 메모리에서 자동으로 해제됩니다.weak로 선언한다면 강한 참조가 되지 않아 객체의 메모리가 해제되면 자동으로 nil이 될 것입니다. Retain Cycle은 delegate에서는 흔하게 발생합니다. 그래서 delegate를 사용할 땐 대부분의 상황에 weak로 선언합니다.UITableViewDelegate..
- Total
- Today
- Yesterday
- leetcode
- 스위프트UI
- RX
- objective-c
- 책 추천
- 스위프트
- objc
- iOS SwiftUI
- 애니메이션
- string
- stanford SwiftUI
- 책 후기
- wwdc
- Algorithm
- swift5
- SWIFT
- 문자열
- ReactiveX
- rxswift
- ios
- Animation
- swiftUI
- Xcode
- ARC
- 딥러닝
- Deep learning
- 알고리즘
- 독서
- 머신러닝
- 책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |