private lazy var dateFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" return formatter }() 코드를 보다보면 lazy 라는걸 한번쯤 보셨을거에요. 오늘은 Lazy Property에 대해 알아 보려고해요 ! 단어뜻으로 보면 게으르다는 뜻인데 어떤 뜻인지 같이 알아보겠습니다 :) Lazy Stored Properties (지연 저장 프로퍼티 ) 값이 사용되기 전에는 계산되지 않는 프로퍼티입니다. 불려지기 전에는 가만히 있는 애인가 보네요. 선언 프로퍼티의 선언 앞에 lazy 키워드를 붙이면 됩니다. 아래처럼 말이죠. // lazy var 변수명: 타입 =..
앱을 사용하다보면 시간을 활용해서 알람을 보내거나 여러가지 기능을 구현할수 있는데, 이 글에서는 날짜를 다루는 방법 에 대해 알아보려고 합니다. Date()를 선언하게 되면 2021-09-25 06:10:50 +0000 이런식으로 나오게 되는데 아래와 같은 사진으로 변경해봅시다!! 먼저 시간을 조절할수있는 DatePicker에 대해 알아보도록 하죠. DatePicker 1. ViewController 추가. (저는 `DateViewController`로 이름을 지었습니다.) 2. Objects Library (Shift + cmd + L)에 Datepicker 추가. 3. (선택) 이쪽에서 DatePicker에서 원하는 디자인을 선택할수 있습니다. 저는 시간만 변경하는걸로 설정했습니다. Preferred..
메소드에 이어서 프로퍼티에 대해 공부를 해봅시다. 오늘도 프로퍼티 (Properties) 늘 그래왔듯 정의 부터 보죠! 프로퍼티는 클래스(class), 구조체(struct), 열거형(enum)과 관련한 값 입니다. 종류로는 저장 프로퍼티 와 연산 프로퍼티 등이 있습니다. 프로퍼티에는 대표적으로 두가지 종류가 있어요. 이외에도 타입 프로퍼티 등 더 있긴하지만 오늘은 저장 프로퍼티를 먼저 보려고 합니다. 하나씩 파헤쳐 봅시다! 저장 프로퍼티 (Stored Properties) 이름 그대로 값을 저장하고 있는 프로퍼티 입니다. let(상수) 또는 var(변수) 키워드를 선언해서 사용할 수 있어요. 예제를 보면서 해볼까요? 눈으로 보는것보단 Playground에 같이 따라하는게 더 이해가 잘갑니다 :) 저장프로..
iOS 버전이 낮은 시뮬레이터로 Run을 했을때 아래의 오류가 생기면서 컴파일 되지 않았습니다. The linked library '파일명' is missing one more architectures required by this target: arm64. 해결 두가지 방법이 있습니다. 1. (없어도 될 라이브러리, 프레임 워크일경우) General - Framworks, Libraries, and Embedded Content 에러가 나는 라이브러리 삭제 2. (라이브러리, 프레임워크가 필수로 있어야 하는경우) Build Settings - Architectures - Excluded Architectures - arm64 추가
가장많이 보았고 가장많이 헷갈렸던 인스턴스, 메서드 에 대해 정리 해 보려 합니다 그동안 어림짐작해서 이건 메서드겠구나 했는데 정확히 알고 넘어가야겠다!!! 메서드 (Methods)특정 타입의 클래스, 구조체, 열거형과 관련된 함수 를 메서드라 합니다.함수 , 이것은 함수였다.메소드에는 인스턴스 메서드, 타입 메서드 가 있어요. 인스턴스 메서드 ( Instance Methods )인스턴스 메서드는 특정 클래스(class), 구조체(struct), 열거형(enum)의 인스턴스에 속한 메서드 입니다. 아래 코드 처럼요!class Counter { //
문제 라이브러리 설치할때마다 DEPLOYMENT_TARGET 버전이 변경되서 빌드를 할때마다 각 라이브러리의 타겟 버전을 변경해줘야 하는 번거로움이 있었습니다. 해결 Podfile에서 아래 내용을 추가해줍니다. // 이 내용을 추가해주세요. post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' // 5.4' pod 'SnapKit', '~> 5.0.0' // 여기 추가 post_install do |installer| installer...
TCP( Transmission control Protocol ) 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜. 패킷을 추적 & 관리 함. 역할 패킷에 번호를 부여해서 패킷이 중간에 손실되지 않았는지 추적 전송 후 목적지에서 나누어진 패킷이 다시 온전한 데이터가 될 수 있도록 재조립. 특징 서로 데이터를 주고받을 수 있는 양방향 통신이며, 일대일 통신 입니다. 신뢰성 있는 연결을 중시할 때 사용합니다. ex) 전화 흐름제어 데이터 처리 속도 조절 혼잡제어 네트워크 내 패킷 수가 넘치지 않게 방지. IP ( Internet Protocol ) 데이터를 전송하는 역할. 패킷 데이터를 보낼때 한 뭉텅이로 보내는게 아니라, 효율성을 위해 조각조각 나누어 보내는데 이때, 나누어진 데이터를 말..
프로젝트를 처음 만들어봤을때 가장먼저 맞이해주는 override 많이들 보셨죠 ? 아무 생각없이 넘어갔는데 오늘은 override에 대해 한번 파봅시다!! 오버라이드 (override) 일단 공식문서의 내용을 요약해서 먼저 한번 볼까요 상위클래스로부터 상속받은 메서드, 프로퍼티들을 하위 클래스에서 재정의하는 것 살짝 알듯 말듯 하네요. 말보단 코드로 먼저 보시죠 !! 눈으로 보는것 보다 Playground에 따라 쳐보시면 이해가 더 잘갑니다 먼저 Student라는 class를 만들어볼게요. class Student { func sayHello() { print("안녕 나는 학생이야") } } 호출을 하면 어떻게 나오는지 볼까요 ? let student = Student() student.sayHello(..
Extension? 스위프트의 강력한 기능 중 하나로. 기존 클래스, 구조체, 열거형 타입에 새로운 프로퍼티, 메서드, 이니셜라이저 등을 추가하여, 소스 코드에 접근하지 못하는 타입들도 확장해서 사용할 수 있다. 사용시 extension 이란 키워드를 사용하여 확장한다. 선언 extension 확장할 타입 이름 (e.g. Int) { // 타입에 추가될 새로운 기능 구현 } // 또는 extension 확장할 타입 이름: 프로토콜1, 프로토콜2 { // 프로토콜 요구사항 구현 } ⭐️ 확장에 프로토콜 추가 아래와 같은 예시를 보면 struct Language { let name: String } let sweetft: Language = .init(name: "sweetft") let swift = sw..
- Total
- Today
- Yesterday
- Swift
- Combine: Asynchronous Programming with Swift
- 2023년 회고
- removeLast()
- Swift RIBs
- iOS error
- RTCCameraVideoCapturer
- swift protocol
- Swift 프로퍼티
- Swift final
- 원티드 프리온보딩
- Swift 내림차순
- RIBs tutorial
- swift property
- swift (programmers)
- Swift 프로그래머스
- ios
- Class
- Swift Error Handling
- Swift joined
- Swift joined()
- Swift inout
- Swift init
- Swift ModernRIBs
- Swift 알고리즘
- CS 네트워크
- swift programmers
- swift reduce
- Swift Leetcode
- swift 고차함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |