일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- 프로젝트회고
- 오늘의 색상
- UIKit
- collectionView
- UserDefault
- 조건문
- xml
- stanford
- CS193p
- 알고리즘
- Swift
- 스터디
- 청년취업사관학교후기
- 스위프트
- Masil
- ImageSlider
- xcode
- process
- 백준
- MVVM
- 코딩테스트
- IOS
- flutter #state # stateful #stateless
- GIT
- 프로그래머스
- colorofdays
- 새싹후기
- SwiftUI
- WidgetTree
- flutter
- Today
- Total
목록개발 이야기/Swift (36)
개발을 시작하는 이야기
Swift의 ARC는 레퍼런스 카운트를 관리하여 메모리 누수를 방지하는 역할을 한다. 이때, 인스턴스끼리의 강한 순환 참조 문제를 해결하는 두 가지 방법이 있는데 weak reference와 unowned reference를 사용하는 것이다. Weak References weak references는 참조하는 인스턴스를 강하게 유지하지 않는 참조로 ARC가 참조된 인스턴스를 할당 해제할 수 있다. 할당 해제가 되면 ARC는 자동으로 약한 참조를 nil로 설정한다. 이렇게 약한 참조는 nil값이 들어갈 수 있기 때문에 상수가 아닌 옵셔널 타입의 변수로 선언되어야 한다. class Person { let name: String init(name: String) { self.name = name } var a..
ARC(Automatic Reference Counting) iOS는 앱의 메모리 사용을 추적, 관리하기 위해 ARC 기능을 사용한다. ARC는 Automatic Reference Counting의 줄임말로 참조 메모리 관리를 자동으로 해주는 기능을 뜻한다. 인스턴스가 참조되거나 참조 해제될 때 횟수를 카운팅 하고, 횟수가 0이 되면 인스턴스를 메모리에서 해제하는 방식 How ARC Works 클래스가 새로운 인스턴스를 생성할 때, ARC는 인스턴스에 대한 정보를 저장할 메모리 청크를 할당한다. 할당한 메모리 청크에는 인스턴스의 타입에 대한 정보, 인스턴스와 관련된 프로퍼티 값 등을 저장해둔다. 더 이상 인스턴스가 필요하지 않게 되면 자동으로 메모리에서 비우는 방식으로 메모리를 관리한다. ARC in A..
앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체 앱 구조의 뼈대로 모든 앱에는 반드시 하나 이상의 ViewController로 이루어져 있다. 주요한 데이터의 변화에 응답으로 뷰들의 콘텐츠들을 업데이트한다. 뷰와 함께 사용자에 응답하며 이벤트를 핸들링한다. 뷰들의 사이즈 재조정과 인터베이스들의 레이아웃을 관리 다른 객체들과 함께 앱을 구성한다. ViewController의 역할 1. 뷰 계층 관리 모든 ViewController마다 RootView를 지니고 있으며, 화면에 표시하기 위해서는 해당 RootView계층에 속해야 한다. View Controller의 종류 모든 뷰를 단독으로 관리 : UIViewController, UITableViewController, UICollectionVIew..
UserDefalts 키 - 값을 쌍으로 저장하는 인터페이스. 런타임 시 개체를 이용하여 기본 데이터베이스에서 사용하는 기본값을 읽어오기 때문에 필요할 때마다 데이터베이스를 열 필요가 없다. 대용량의 데이터보다는 최조접속여부, 자동 로그인 여부, 아이디, 환경설정에서의 설정 데이터 값과 같은 단일 데이터 등을 보관한다. CoreData 객체 그래프를 관리하기위한 FrameWork. SQLite와 같이 테이블을 이용하지 않고 객체를 생성하여 데이터를 운영하기 때문에 더 많은 저장공간과 메모리를 필요로 한다. 하지만 더 빠르게 데이터를 가져온다. Data Model을 생성한 후 Entity를 생성한다. SQLite 오픈소스로 Android, iOS, macOS에 기본적으로 포함되어있다. C언어로 작성되어있어..
처음 Xcode에서 시뮬레이터를 통해 빌드 테스트를 할 때는 신기하기만 했다. 테스트용 실기기를 갖고 있긴 하지만 실기기에 빌드하는 경우보다 시뮬레이터를 통한 빌드를 더 많이 하곤 했는데 점차 구현하는 기능이 다양해지고 복잡해지면서 시뮬레이터의 한계를 느끼기 시작했고, 시뮬레이터의 한계에 대해 정리해봤다. 일단 가장 먼저 체크하는 공식문서는 찾아볼 수가 없었다. iOS_Simulator_Guide 그마나 찾은 것도 Xcode9 버전에서 만료된 문서였고, Simulator의 Help를 통한 공식문서는 어째서인지 연결이 안 되어있다. 일단 경험한 것들과 인터넷에서 찾은 내용은 아래와 같지만 정확한 내용은 아니다. 일반 맥의 성능이 아이폰 성능보다 뛰어나기 때문에 앱의 성능, 메모리 사용량, 네트워킹 속도에 ..
Frame과 Bounds는 UIView의 instance property이다. 일단 Xcode에서 정의된 내용을 살펴보자면 아래와 같이 설명하고 있다. @interface UIView(UIViewGeometry) // animatable. do not use frame if view is transformed since it will not correctly reflect the actual location of the view. use bounds + center instead. @property(nonatomic) CGRect frame; // use bounds/center and not frame if non-identity transform. if bounds dimension is odd, c..