요즘 ModernRIBs를 공부하면서 protocol이 굉장히 많이 쓰이길래 이거부터 알아야 코드가 읽힐것 같아 공부를 해봅니다 :) 가봅시닷 프로토콜 (Protocol) 프로토콜은 메소드, 프로퍼티, 다른 작업 또는 기능의 부분에 맞는 요구사항을 청사진을 정의합니다. 인터페이스이며, 구현은 하지 않습니다. 정의만 합니다. 구현은 해당 프로토콜을 채택한 곳에서 합니다. 여기서 채택 이란 이겁니다. 알게 모르게 많이 써왔던건데 오늘 자세하게 공부해봅시다! 프로토콜 문법 (Protocol Syntax) 프로토콜은 클래스, 구조체, 열거형과 유사한 방법으로 정의 합니다. protocol SomeProtocol { // protocol definition goes here. } 프로토콜을 채택하는 방법 - 구조..
이용가능한 API 버전 확인 (Checking API Availability) 기본적으로 특정 플랫폼 (iOS, macOS, tvOS, watchOS)과 특정 버전을 확인하는 구문을 제공해 줍니다. 이 구문을 활용해 특정 플랫폼과 버전을 사용하는 기기에 대한 처리를 따로 할 수 있습니다. 형태는 아래와 같습니다. if #available(platform name version, platform name version,... *) { // 해당 버전이상은 이 구문 실행 } else { // 나머지 버전은 이 구문 실행 } 예시 // 제 맥북은 macOS 12.0.1 버전입니다. if #available(iOS 10, macOS 10.12, *) { print("iOS 10 버전, macOS 10.12 버전..
Control Flow Swift에서는 while, if guard, switch, for-in 문 등 많은 제어문을 제공합니다. 내용이 많아 2개로 나눠서 정리해보려고 합니다 조건문은 따로 정리할게요 ! For-in Loops for-in 문은 배열, 숫자, 문자열을 순서대로 순회 하기 위해 사용합니다. let names = ["Roy", "Daisy", "Lily", "Jason"] for name in names { print("Hello, \(name)!") } // Hello, Roy! // Hello, Daisy! // Hello, Lily! // Hello, Jason! dictionary에서 반환된 key-value 로 구성된 튜플을 순회하며 제어할 수도 있습니다. ※ dictionary에..
앱 마다 각자의 특성에 맞는 글씨체가 있죠 개인적으로 배달의 민족 글씨체가 이쁘다고 생각하는데요. 오늘은 폰트 적용하는 방법에 대해 알아보려고 합니다! 고고!! 1. 원하는 폰트 다운. 구글에 폰트이름 검색하시고 다운먼저 받아주세요! 저는 배민 주아체를 다운받았는데요. OTF는 맥용 , TTF는 윈도우 용이에요. 원하는거 다운 받아주시고. (저는 둘다 받았습니다.) 2. 다운받은 폰트 프로젝트에 넣기. 다운받은 폰트를 Xcode로 드래그앤 드랍하면 아래와 같은창이 뜰거에요. Add to targets 부분에 현재 프로젝트를 체크 해주세요! (체크하셨다면 3번은 넘어가도 됩니다) 저는 Fonts라는 폴더를 만들고 그 안에 다운받은 폰트를 넣었어요. 3. Target Membership Xcode에 폰트..
m1으로 개발을 하면서 실기기, 시뮬레이터 번갈아 가며 테스트 하다가 시뮬레이터로 하려는데 아래와 같은 에러가 계속 뜹니다..🤯 분명 pod install도 했는데!!! 수많은 삽질의 기록 . . . 1. 빌드 클린(shift + cmd + k) 후 다시 실행 2. pod 삭제후 재설치 (pod install) 3. xcode 재실행 . . . 다 안됐다.. 해결방법은 Xcode를 Rosetta로 실행하면 됩니다!! m1 문제인지도 모르고 pod, xcode 버전만 검색하느라 삽질이 너무 많았다 ㅠㅠ 22.01.07 추가 Rosetta를 사용하면 Playground에서는 아래와 같은 오류가 뜹니다. failed to prepare for communication with playground for an ..
어제 문법 스터디 모임에서 removeLast()와 popLast()의 차이점에 대한 얘기가 나왔는데요. 알아두면 좋을것 같아 블로그에 정리해 보려고 합니다. 두 메소드는 공통적으로 배열의 마지막 요소(Elelment)를 없애고 없앤값을 리턴 합니다. 차이점 언뜻보면 같지만 차이점은 리턴값에 있습니다. removeLast()는 값이 무조건 존재해야하고, popLast()는 값이 없으면 nil을 리턴한다는 차이점이 있어요! 예시 예시를 한번 볼까요 ? removeLast() var foods = ["햄버거", "닭가슴살"] let a = foods.removeLast() let b = foods.removeLast() print(a) // 닭가슴살 print(b) // 햄버거 print(foods) // ..
GCD란? Grand Central Dispatch의 약자로, 앱의 메인스레드 또는 백그라운드 스레드에서 작업 실행을 순차적 또는 동시에 관리하는 객체 입니다. Dispatch Queue 종류 Serial Dispatch Queue (Main Queue) - 순차적으로 작업을 실행 합니다. - UI와 관련된 작업은 모두 main Queue를 통해 수행 합니다. - MainQueue를 sync메소드로 동작시키면 Dead Lock 상태에 빠집니다. DispatchQueue.main.async { } Concurrent Dispatch Queue (Global Queue) - 동시에 작업을 실행 합니다. - UI를 제외한 작업에서 사용하며 Concurrent Queue에 해당합니다. - sync, async ..
오늘은 UserDefaults에 대해 공부 해볼게요! UserDefault란 간단한 데이터를 저장할때 사용하는 로컬 데이터 저장소 라고 보시면 되는데요! 즉, 사용자의 핸드폰에 저장하는거죠. 간단한 데이터라 하면 이런게 있어요. 앱 최초실행 기록 저장 사용자 기본설정 등 사용법 UserDefaults는 사용자의 기본 데이터베이스를 key-value 쌍으로 저장하는 인터페이스입니다. 이때 key의 값은 String(문자열)로 저장을 합니다. 아래 코드를 보시죠. //값 저장 UserDefaults.standard.set(value: Any?, forKey: String) //값 불러오기 UserDefaults.standard.string(forKey: String) // UserDefaults.싱글톤.불러..
사전(Dictionaries) dictionary는 정의된 순서 없이 collection에 동일한 타입의 키와, 동일한 타입의 값을 연결합니다. NOTE Swift의 Dictionary 타입은 Foundation의 NSDictionary 클래스를 bridge한 타입 입니다. 선언 일반적인 Dictionary 형태는 아래와 같습니다. Dictionary 축약형 Dictionary [Key: Value]의 형태로 Dictionary를 선언해 사용할 수 있습니다. 빈 Dictionary의 생성 var namesOfIntegers = [Int: String]() // 또는 var namesOfIntegers: [Int: String] = [:] var namesOfIntegers = [Int: String]()..
- Total
- Today
- Yesterday
- Swift RIBs
- swift protocol
- 2023년 회고
- swift reduce
- swift 고차함수
- 원티드 프리온보딩
- RTCCameraVideoCapturer
- Swift init
- Swift
- Combine: Asynchronous Programming with Swift
- removeLast()
- Swift 프로그래머스
- iOS error
- CS 네트워크
- Swift final
- Swift 알고리즘
- Swift joined()
- Swift ModernRIBs
- Swift 내림차순
- Swift inout
- ios
- RIBs tutorial
- swift programmers
- swift (programmers)
- Swift joined
- Swift 프로퍼티
- Swift Leetcode
- Swift Error Handling
- Class
- swift property
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |