본문 바로가기

SWIFT7

[Swift] actor도 final 키워드로 최적화 할 수 있을까? 흔히들 class에서 상속 구조가 없으면 swift optimizationTips에서 가이드하는 것처럼 아래와 같이 final 키워드를 명시하여 컴파일러가 최적화를 수행할 수 있도록 해준다. class 뿐만 아니라 메서드, 프로퍼티는 final 키워드를 통해 컴파일러가 최적화가 가능하다.final 키워드는 더 이상 얘는 overriden 되지않아.! 걍 바로 얘 쓰면 돼! 라고 알려주는 것과 같기 때문이다. 그렇다면 swift 5.5에 새롭게 등장한 actor는 어떨까? 그보다 먼저 actor가 뭔지부터 간략하게 끄적여보면actor는 class와 같은 reference type이다. class와 다른 점은 상속이 불가능하고, MT-safe를 기본적으로 보장한다.다른 타입처럼 initializer도 가질 .. 2024. 8. 24.
[Swift] inout 매개변수 안녕하세요 로디입니다. 오늘은 Swift의 inout 키워드에 대해서 간단하게 정리하겠습니다. Swift에서, 함수의 매개변수(parameter)로 전달되는 "값 타입"은 기본적으로 상수(let)입니다.* 값 타입Swift의 값 타입은 구조체(struct)를 사용하여 표시합니다. 예를 들어 String, Int, Array, Dictionary 등. 그렇기에, 함수의 body 내부에서 매개변수로 전달받은 값을 바꾸는 것은 불가능합니다.아래와 같이 매개변수 값을 바꾸려고하면 컴파일러가 에러를 표시하죠. 그렇다면 함수 내부에서 매개변수의 값을 바꾸는 게 영영 불가능할까요?아뇨, 매개변수를 inout 키워드를 이용해 inout 매개변수로 정의하면 가능합니다. Swift의 인아웃 매개변수(In-Out Param.. 2024. 7. 19.
[알고리즘] 해시 해시- 키를 통해 값을 찾을 수 있음- 그러나 값을 통해 키를 찾을 수는 없음.- 키 자체가 해시 함수에 의해 값이 있는 인덱스가 되므로 값을 찾기 위한 탐색 과정이 필요 없음.- 값을 익덱스로 활용하려면 적절한 변환 과정을 거쳐야함. 해시 테이블- 키와 대응한 값이 저장되어 있는 공간- 해시 테이블의 각 데이터를 버킷이라고 부름. 해시 함수코딩테스트에서 해시 함수를 직접 구현하라는 문제가 나오는 경우는 거의 없음.Swift의 STL은 이미 Dictionary 를 제공하는데, 해시와 거의 동일하게 동작하므로 해시를 쉽게 사용할 수 있음.해시 함수에 의해 얻어지는 값을 해시값, 해시코드, 해시 체크섬으로도 부름. 해시 함수를 구현할 때 고려해야할 부분- 첫째, 해시 함수가 변환한 값은 인덱스로 활용해야 함.. 2024. 7. 4.
[iOS] 사용자에게 알림 보내기 - User Notification Framework 보호되어 있는 글 입니다. 2024. 1. 28.
[Swift] Attribute - @discardableResult 보호되어 있는 글 입니다. 2024. 1. 28.
[Swift] GCD와 친해지기 멀티 쓰레딩 (Multi threading)멀티 쓰레딩은 하나의 프로세스 내에서 이루어지던 작업을 다른 쓰레드에서 작업할 수 있도록 분산 처리할 수 있는 방법입니다.동시에 여러 작업을 수행할 수 있어 빠르게 작업을 수행할 수 있지만, 수행 순서를 보장할 수 없습니다  iOS 에서 멀티 쓰레딩을 구현하는 주요 방법은 아래와 같습니다. 1) GCD : 디스패치 큐를 사용하여 작업을 스케쥴링하고 병렬로 실행할 수 있습니다.2) Operation: 오퍼레이션 큐를 사용하여 Operation 객체를 관리합니다. GCD GCD 가 무엇이며 어떤 목적으로 사용되나요? GCD (Grand Central Dispatch) 는 macOS 및 iOS 에서 다중 스레드 및 병렬 프로그래밍을 간단하게 구현할 수 있도록 해주는 .. 2024. 1. 25.
[iOS] TableViews - Static table views are only valid when embedded in UITableViewController instances 컴파일 오류 UIViewController 객체의 View 내부에 UITableView 객체를 Embed 하고 Attributes inspector 창을 통해 UITableView의 content를 static cell로 설정한 다음, 실행시켰는데 "Static table views are only valid when embedded in UITableViewController instances" 라는 오류가 발생하며 빌드에 실패했다. 원인을 찾고자 공식문서를 찾아보니... 아래와 같이 중요하다고 박스표시까지 되어있다.. UITableViewController 중요 ⚠️ 정적 데이터를 가진 테이블 뷰는 해당 데이터를 관리하기 위해 UITableViewController 객체가 필요합니다. 정적 테이블을 사용하면 스토.. 2024. 1. 7.