일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift
- 명품cppProgramming c++
- MethodSwilzzling
- data_structure
- IOS
- 코테
- combine
- 등굣길
- rxswift
- MainScheduler
- DispatchQueue
- Realm
- SRP
- DynamicMemberLookup
- SwiftUI
- 청년취업사관학교
- GCD
- gitflow
- SeSAC
- MainScheduler.Instance
- GIT
- leetcode
- 프로그래머스
- DependencyInjection
- RaceCondition
- MainScheduler.asyncInstance
- cleanarchitecture
- 오픈채팅방
- CoreBluetooth
- DiffableDataSource
- Today
- Total
목록iOS (44)
Do.
잘 알겠지만 프로토콜은 '해야할 것'을 명시하는 것으로 만약 클래스에서 프로토콜을 채용하고 있다면 해당 클래스는 채용한 프로토콜에서 알려주는 것들을 꼭 구현 해야 한다. protocol Spell { associatedtype SpellType var word: SpellType { get } } struct Fireball: Spell { typealias SpellType = String var word: String { "Go FireBall!!" } } Spell 프로토콜은 주문을 외우기 위한 word라는 속성을 읽기 속성으로 구현해야 한다. word의 타입은 associatedtype인 SpellType 이어야 한다. 그리고 Fireball은 Spell을 채용한다. 그럼 Fireball 마법은 ..
sh파일 실행해애 해서 terminal에서 입력했는데 위 사진처럼 나온다. Xcode는 당연히 설치되어있는데? 싶어서 보니 Xcode - Preferences - Locations 에 Command Line Tools 가 비어있더라, 선택해주면 해결된다.
Reference Swift Apprentice 출처 입력 Intro Swift는 Autometic Reference Counting(ARC)를 통해 사용자가 특별히 메모리를 관리하지 않아도 메모리를 잘 관리해주기는 하지만 그것만으로는 부족한 경우가 있다. ARC가 개체 간 적절한 관계를 추론할 수 없는 경우가 있는데 여기서 바로 볼 수 있는 키워드가 참조 사이클(Reference Cycle) 이다. 클래스에 대한 참조 주기 클래스의 인스턴스 끼리 서로 강한 참조를 하게 되면 메모리 누수로 이어지는 Strong Refernece Cycle을 만들게 된다. 어느 한쪽이 비활성화 되어도 참조 카운팅 회수가 0이 되지 않게 되기 때문이다. class Audio { let title: String var edi..
코드 스닙펫은 코드 자동완성과 비슷한 개념이다. Xcode에서 작성중인 페이지에서 라이브러리를 열면 보이는 것이 바로 그것 대표사진 삭제 사진 설명을 입력하세요. 예를들어ViewController에서 기능을 구분하기 위해 extension하고 그 위에는 MARK로 구분을 하는데 줄 나누기까지 되는 마크를 주려면 //MARK: - 까지 입력을 해야 하는데 이것도 많이 하다 보면 여간 귀찮은 일이 아니다. 그래서 코드 스닙펫을 활용해서 자동완성 되도록 해보자. 대표사진 삭제 사진 설명을 입력하세요. 에디터에서 Control + Click 또는 우측 클릭을 하면 드롭 메뉴가 나오는데 거기서 Create Code Snppet...으로 들어간다. 대표사진 삭제 사진 설명을 입력하세요. 그러면 위와 같은 창에서 M..
Index BreakPoint 변수 등 상태값 디버깅, 모니터링 Debug Bar Button BreakPoint BreakPoint는 Xcode 상에서 거터 레인을 클릭했을때 나타나는 파란색 화살표를 말한다. 이는 디버그 모드 상태에서 앱을 실행할 때 프로그램이 해당 라인을 실행할 때 거기서 잠깐 멈추라는 중단점을 설정해 준다. 디버깅 목적으로 아주 유용하게 사용할 수 있다. 어플이 실행중 브레이크포인트에 걸린 모습 초록색 라인으로 표시된다. 거터를 클릭해서 마우스를 통해 Break Point를 지정할 수도 있고, 해당 라인에서 Command+\를 단축키를 통해 브레이크 포인트를 등록할 수 있다. 가끔 앱의 구성이 복잡해지고 파일이 많아져서 어딘가에 브레이크 포인트를 지정하고 까먹고 앱을 실행했는데 의..
Reference Expert Swift by raywenderlich Tutorial Team 커링(Currying) func aHigherOrderFunction(_ operation: (Int) -> ()) { let numbers = 1...10 numbers.forEach(operation) } func someOperation(_ p1: Int, _ p2: String) { print("number is : \(p1), and String is: \(p2)") } 위와 같은 함수가 있을 때 aHigherOrderFunction은 정수를 파라메터로 가지고 리턴타입이 Void인 함수를 인자로 받는다. someOperation은 정수와 문자열을 인자로 하는 함수로 일반적으로는 요구하는 인자가 일치하..
서론(무시해도 됨) Swift Foundation에 있는 XML Parser는 말 그대로 XML parsing이 가능한 클래스이다. 공공 데이터 포털의 REST API는 JSON으로 제공하는 것도 있지만 XML로 제공하는게 더 많은 것 같다.(체감) JSON의 경우 JSON Encoder와 Decoder를 이용하면 정말 손쉽고 간편하게 사용할 수 있는데(URL Session과 함께) XMLParser 클래스는 좀 순서가 다르다 XMLParser 클래스를 생성하고 .parse() 메소드로 파싱을 시작하는데 데이터를 분석하는 것은 Delegate를 통해서 한다. XML Parser의 사용법을 알아보자 사용법 UIKit 기준으로 설명 func updateBusInformation(_ requestModel: ..
Swift는 몇가지 유용한 고차함수를 라이브러리 차원에서 제공하는데 흔히들 써봤을 것이다. 그것들 중 일부가 아래와 같다. Map Split CompactMap FlatMap Filter Reduce Sorted Map, Split Array.map(_:)은 배열의 모든 요소에 대해 작업하고 리턴값으로 동일한 크기의 새 배열을 반환한다. 백준에서 입력 값을 받을 때 참 많이 유용한데 백준 1085문제의 경우 입력 값으로 4개의 정수가 스페이스 문자로 구분되어 들어온다. 6 2 10 3 문제를 풀때 이를 스페이스 문자로 구분해서 배열로 저장하고 문자로 들어온 것이기 때문에 정수로 변경해야 하는데 map을 사용하지 않으면 let input = readLine()!.split(separator: " ") va..