일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ReactorKit UnitTest
- IOS
- Swift디자인패턴
- algorithm
- Swift코딩테스트
- firebase
- ARC
- iOS앱 디버깅
- RC
- RxSwift
- firestore
- 코딩테스트입문
- Safari Inspector
- Bubble Search
- mrc
- AutoLayout
- 프로그래머스
- SWIFT
- UIKit
- TDD
- unittest
- alamofire
- Di
- hackerrank
- 앱의생명주기
- 시험에자주나오는것만
- 카카오맵클론
- HackersRank
- ios면접
- 반응형프레임워크
- Today
- Total
목록전체 글 (93)
샘성의 iOS 개발 일지
이제 카카오톡 구글에 이어서 마지막, 대망의 애플 로그인 구현하기.. (기본적으로 프로젝트가 이미 있는 상태라 가정하고 작성 합니다..!) 1. Identifier 추가하기 1. 일단 Apple Developer Account로 하단의 링크 로그인으로 시작한다. 로그인 - Apple idmsa.apple.com 2. Identifiers 클릭 3. 각자 원하는 Description과 애플로그인을 구현할 프로젝트의 번들 ID 입력하기. + Sign In with Apple도 체크하기 2. 프로젝트 설정하기 * Target >> Capability + 버튼 누르기 >> Sign in with Apple 추가 3. 로그인 구현하기 1. Apple로 로그인을 구현하려면 하단의 AuthenticationServi..
정답 : Main Thread 이유 : 코코아터치 프레임워크는 아이폰, 아이패드, 애플워치 등 애플의 모바일 기기에서 구동되는 애플리케이션을 개발할 때 사용하는 통합 프레임워크이다. 이 코코아터치 프레임워크엔 Foundation과 UIKit이 존재한다. - Foundation은 기능적인 부분을 담당하여 String, Int등의 원시 데이터 타입과 연산, 네트워킹, 구조체 등의 기능을 주로 처리한다. - UIKit은 화면에 보여지는 콘텐츠를 보여주고 컨트롤하는 객체(UIView, UIViewController)를 보유하고, 앱으로써의 기능 구현을 담당한다. UIResponder에서 파생되거나 어떤 방식으로든 앱의 UI(User Interface)를 조작하는 것과 관련된 클래스의 경우, 아래의 중요 메세지처..
Delegate란? Delegate의 사전적 의미는 대리자, 위임하다, 파견하다 등이 있다. 객체지향 프로그래밍에서 Delegate는 하나의 객체가 모든 일을 처리하는 것이 아닌, 일부 일처리를 다른 객체(대리자)에게 위임하는 것이다. - 위임하는 방식: 다른 객체에게 어떠한 일처리를 할 것인지 캡슐화한 프로토콜로 구현하여, 대리자가 해당 일처리의 기능을 제공하도록 보장 받는다. 또한, 대리자가 구현해놓은 기능을 위임한 객체는 알지 못한다. 그저 필요할 때, 대리자가 구현한 기능을 호출할 뿐... 따라서 코드의 유지보수 측면에서도 장점이 있다. Retain 되나? 우선, Swift는 Automatic Reference Counting 방식으로 메모리를 관리한다. 즉, 나를 참조하는 객체(인스턴스)가 없다..
문제 설명: 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ n:Int, _ k:Int) -> Int { // 양꼬치 가격 let sheep = n * 12000 // 마신 음료수 가격 let drink = k * 2000 // [총가격, 할인가격] var price = [sheep + drink, (n/10) * 2000] return price[0] - price[1] } 회고: 간단..
문제 설명: "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 내 풀이: import Foundation let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! } // 1~n동안, "*"를 i만큼 프린트 하는 것을 반복 for i in 1...n.first! { print(String(repeating: "*", count: i)) } 회고: 루프문은 시간복잡도가 O(n)이라 그런지 테스트 10개의 평균 속도가 5.0대를 갖고있었다..
문제 설명: 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ num_list: [Int]) -> [Int] { return num_list.reversed() } 회고: reverse()는 주어진 배열에 접근하여 그 공간 안에서 순서를 바꿔버리는, mutating function이기 때문에 시간복잡도가 O(n)이다. 반대로, reversed()는 기존의 배열을 ReversedCollec..
문제 설명: 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ money:Int) -> [Int] { return [money/5500, money%5500] }
문제 설명: 머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ price:Int) -> Int { switch price { case 100000...299990: return Int(Double(price) * 0.95) case 300000...499990: return Int(Double(price) * 0.9) case 500000...: return Int(Double(price) * 0.8) default: return price } ..