어제 문법 스터디 모임에서 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.싱글톤.불러..
생각해보니 내 블로그엔 나를 나타내주는 글이 없었다. 물론 공부하며 기술블로깅하는것도 중요하지만 블로그에 개성이 없었달까. 가끔은 나만의 이야기를 여기다 적어보려 한다. 현재 나의 커리어는 호텔리어 > 웹 개발(React) > 앱 개발(React Native) > iOS 개발로 진행해 오고있으며, 드디어 원하던 앱 개발자로 전향을 했다. 호텔리어..? 나는 프론트 데스크에서 손님들의 체크인 체크아웃 등을 도와드리는 호텔리어 였다. 사람들과 얘기하는걸 좋아했고, 내가 해줄수 있는일에 대해 손님들이 감동받고, 여러가지 피드백을 받으면서 더 좋은 관계를 유지하는거에 대한 뿌듯함을 느꼈때도 많았지만 오히려 사람때문에 상처를 받을때도 있었다. 2년조금 넘게 일을 하고 있을즈음 미래에 대한 생각도 하게 되고, 코로..
사전(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]()..
Sets Set 형태로 저장되기 위해선 반드시 타입이 hashable 이어야 합니다. Swift에서 String, Int, Double, Bool 같은 기본 타입은 hashable입니다. Swift에서 Set 타입은 Set으로 선언 합니다. 빈 Set 생성 var letters = Set() print("letters is of type Set with \(letters.count) items..") 위처럼 타입을 지정해 놓으면 아래와 같이 사용할 수 있습니다. letters.insert("a") print(letters) // ["a"] letters = [] // Set([]) 배열 리터럴을 이용한 Set 생성 var favoriteGenres: Set = ["Rock", "Classic", "Lof..
Swift에선 콜렉션 타입으로 Array(배열), Set, Dictionary(사전) 세 가지를 지원합니다. 이 글에선 Array만 알아보도록 할게요 !! 콜렉션의 가변성 Array, Set, Dictionary를 변수(var)에 할당하면 이 콜렉션은 변경가능하고, 상수(let)에 할당하면 변경할 수 없습니다. 배열(Arrays) 배열 타입은 아래처럼 나타낼 수 있습니다. Array // 기본형 // 또는 [Element] // 축약형 빈 배열 생성 빈 배열의 경우 아래와 같이 표기 합니다. var someInts: [Int] = [] print("someInts is of type [Int] with \(someInts.count) items.") // someInts is of type [Int] w..
앱 실행할때 탭이 두번째걸 먼저 시작되게 하고싶은데 첫번째 탭이 먼저 실행되는분들을 위해 블로깅을 해보려고 합니다! 먼저 세팅부터 해볼까요!! 라이브러리 Objects를 열고 (cmd + shift + L) 각 Tab별 아이콘 이미지를 지정해주세요 앱 실행시 제일 처음 보여질 ViewController로 지정해주시고 여기까지만 하고 앱을 실행하면 이렇게 나올겁니다. 이제 순서를 바꿔보죠!! 새로만들기 (cmd + N)에서 이대로 실행하면 드디어 설정한 index값에 따라 시작되는 위치가 바뀝니다. 요즘 문법만 공부하느냐구 재미가 조금씩 떨어지고 있었는데 하나씩 만들어보면서 하는것도 좋은 동기부여가 되는것 같네요. 어제 함박눈도 오고 겨울이 점점 실감이 납니다. 다들 감기 조심하세요~~
Swift 의 String 유형은 Foundation 프레임워크의 NSString이 연결된 타입이기 때문에, Foundation을 import하면 String에서 NSString 메소드에 접근할 수 있습니다. 문자열 리터럴 (String Literals) 문자열은 큰 따옴표 (" ")로 묶어서 표현 합니다. let something = "Some string literal value" 여러줄 문자열 리터럴 (Multiline String Literals) 여러줄의 문자열을 사용하고 싶은 경우 큰 따옴표 3개 (""" """) 를 묶어서 사용할 수 있습니다. let multiineString = """ The White Rabbit put on his spectacles. "Where shall I beg..
요즘 소셜로그인 구현을 해보는 중인데 다들 앱 사용하시다 보면 이런 창 많이 보셨나요!? alert라고도 불리며, 정확한 명칭은 UIAlertController인데요! 오늘은 alert 메시지 박스 띄우는 걸 구현해 보려고 합니다. 결과 구현 순서 전체적인 흐름은 이렇습니다. 1. 로그아웃 버튼 이벤트를 받을 @IBAction 2. alert창에 띄워질 제목, 메시지, alert유형 세팅 3. alert 버튼 추가 confirm에서의 handler 쪽에 in 뒤에는 '네' 버튼을 눌렀을 때 실행할 이벤트를 적으면 됩니다. 저는 카카오 로그아웃을 시키는 걸 테스트해봤어요. cancel에서의 handler에선 alert창만 닫으면 되니 아무런 기능이 없는 nil을 넣어줍니다. 4. 3번에서 구현한 버튼을 a..
- Total
- Today
- Yesterday
- Swift RIBs
- Swift joined
- Swift 프로그래머스
- swift programmers
- swift reduce
- ios
- Swift 프로퍼티
- RTCCameraVideoCapturer
- swift protocol
- 2023년 회고
- Swift 알고리즘
- Swift Error Handling
- Swift Leetcode
- removeLast()
- swift property
- swift (programmers)
- Swift
- Swift ModernRIBs
- CS 네트워크
- 원티드 프리온보딩
- iOS error
- Swift inout
- Class
- Swift final
- Swift joined()
- Swift init
- swift 고차함수
- Combine: Asynchronous Programming with Swift
- Swift 내림차순
- RIBs tutorial
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |