
Property Wrappers swift 5.1부터 추가된 기능 입니다. Property Wrapper는 프로퍼티가 저장되는 코드와 프로퍼티가 정의되는 코드를 분리하는 계층을 추가합니다. 정의 Property Wrapper를 정의 하기위해, wrappedValue 키워드의 프로퍼티가 정의되어 있는 구조체(struct), 열거형(enum), 클래스(class)를 만듭니다. 예제 아래는 구조체 TwelveOrLess에 감싸지는 값이 항상 12 이하라는걸 보장합니다. 만약 저장하는 값이 12보다 높을경우 12를 저장합니다. @propertyWrapper struct TwelveOrLess { private var number = 0 // number는 TwelveOrLess 내부에서만 사용될거기 때문에 pr..

이전에 프로퍼티에 대해 블로깅을 했었지만 복습겸 공식문서를 보고 한번더 정리해보려고 합니다. 프로퍼티 프로퍼티는 클래스, 구조체, 열거형과 관련한 값입니다. 추가로, 프로퍼티 옵저버를 정의하여 값의 변경사항을 모니터링할 수 있으며, 사용자 지정작업으로 응답할 수 있습니다. 프로퍼티 옵저버는 사용저가 정의한 저장프로퍼티와 하위 클래스가 상위클래스에서 상속받는 프로퍼티에 추가될 수 있습니다. (질문) 종류 저장 프로퍼티 (Stored Properties) - 값을 저장하고 있는 프로퍼티 ( 클래스, 구조체 ) 연산 프로퍼티 (Computed Properties) - 값을 저장하지 않고 계산 값을 반환해주는 프로퍼티 ( 클래스, 구조체, 열거형 ) 저장 프로퍼티 (Stored Properties) 값을 저장하..

앱에서 키보드를 띄운다음 키보드 외 화면을 누르면 키보드가 내려가는 기능을 알아 볼건데요. 너무 당연히 될 줄 알았던 기능이었지만, 이것도 따로 구현이 필요합니다. 그래도 생각보다 꽤 간단하니 바로 정리해 봅시다! +추가 (22.02.28) 같이 블로깅 스터디 하시는 분이 더 쉬운방법을 공유해 주셨어요 !! override func touchesBegan(_ touches: Set, with event: UIEvent?) { view.endEditing(true) } 위의 짧은 코드를 추가하면 끝!! 먼저 tap을 감지하는 메소드인 UITapGestureRecognizer(target:, action:) 를 사용해줍니다. override func viewDidLoad() { super.viewDidLoa..

푸시알림은 서버를 사용해서 푸시를 보내는 Remote Notification 기기에서 푸시를 보내는 Local Notification 가 있으며 오늘은 Local Notification 에 대해 공부해 보겠습니다. 이걸 만들어 볼거에요 구현 import 푸시를 구현하기 위해 UserNotifications 프레임워크를 import 해옵니다. import UserNotifications 알림 권한 요청 사용자에게 푸시 알림을 받을지 권한 허용 팝업을 띄워줍니다. 위 팝업은 많이 보셨을거에요. 사용자에게 알림권한을 허용받아야 알림이 가게돼요. 먼저, 허용을 받기 위해 팝업을 띄워 주는걸 구현 해보겠습니다. import UIKit import UserNotifications class NotificationV..

지난 프로퍼티 시간에 클래스/ 구조체를 잠깐 짚고 넘어갔는데요. 저도 아직 두개의 차이점이 어떤건지 긴가민가 해서 오늘은 클래스/ 구조체에 대해 공부해보려고해요! 구조체와 클래스 (Structures and Classes) 프로그램 코드를 조직화 하기 위해 일반적으로 사용되며, 구조체 및 클래스에 프로퍼티와 메소드를 정의해 기능을 추가할 수 있습니다. 어떻게 보면 같지만서도 서로 다른데 둘의 공통점과 차이점을 보겠습니다 !! 공통점 서로 다른 타입들을 하나로 묶을수있다. (이런식으로요) class VideoMode { var resolution = Resolution() var interlaced = false // Bool var frameRate = 0.0 // Double var name: Stri..

오늘은 네트워크통신을 쉽게 도와주는 라이브러리 중 'alamofire'를 공부해보려고 합니다. 들어가기전에 `나는 CocoaPods 사용법을 모른다` 하시는분은 여기 링크에서 설치방법을 읽고와주세요 Alamofire란? Apple에서 네트워킹 작업을 가능하게 해주는 URLSession을 기반으로 만들어진 라이브러리 이며, 더 간결하고 쉬운방법으로 통신할 수 있게 해줍니다. 설치 (CocoaPods) Podfile에 아래 내용을 추가 후 pod install을 해주세요. (22년 2월 13일 기준. 최신 버전 5.5) pod 'Alamofire', '~> 5.5' 통신 방법 (GET) 먼저 GET에 대해 알아봅시다. 형태는 이렇게 생겼어요. 1. url: 데이터를 요청할 URL 2. method: 메소드형..

TextField UI를 구현하다 보면 아래처럼 글을 입력하기 전에 반투명 상태로 보이는 글씨가 있죠 ? 이걸 placeholder라고 불립니다. 근데 너무 붙어있죠.. 조금 띄우고 싶은데 오늘은 placeholder의 위치를 조정하는걸 공부해 보려고합니다 !! 먼저 아쉽게도 placeholder 위치를 잡아주는 TextField의 속성이 없어서 따로 만들어줘야해요. extension으로 UITextField에 leftPadding() 메소드를 하나 만들어 줍니다. (메소드 이름은 어떤걸로 해도 상관없어요) extension UITextField { func leftPadding() { // 1 let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: 20,..
정의 열거형은 관련된 값들의 그룹에 대한 공통 타입을 정의하고 안전한 타입(type-safe)이 된 해당 값들로 코드 내에서 사용할 수 있게 해줍니다. 각 열거 case 별로 값이 제공 된경우, 값의 타입은 String, Character, Int, Float가 될 수 있습니다. 열거형은 자체로 1급 클래스 유형 이어서 초기화를 정의 할 수도 있고, 초기기능을 확장할 수도 있고, 표준 기능을 제공하기 위해 프로토콜을 준수 할 수도 있습니다. 어렵다... 열거형 문법 열거형은 enum 키워드를 사용하여 정의 합니다. enum Enumeration { // enumeration 정의는 여기에 ! } 다음은 (동, 서, 남, 북) 네 가지 방향을 갖는 CompassPoint 열거형 선언의 예시 입니다. enu..

Alamofire Snapkit Starscream RxSwift 등등 많이 보셨죠? 어떤 기능들을 구현하는데 코드를 좀더 간결하고 시간을 단축시켜주게 하는 Library들 입니다. 이 모든 Library들을 관리하게 해주는 툴중 대표적으로 CocoaPods 이 있는데요. 오늘은 CocoaPods 설치 방법에 대해 알아볼게요. CocoaPods Swift 및 Objective-C 에서 개발을 할 때, 외부 라이브러리들을 관리하기 쉽도록 도와주는 의존성 관리 도구중 하나 입니다. CocoaPods 설치 터미널에 아래와 같이 입력해 줍니다. sudo gem install cocoapods 설치 끝. 아주 간단하죠? ⚠️ 참고 자물쇠 모양이 뜨면 맥북에 지정해놓은 비밀번호를 입력해주시고 비밀번호가 없다면 그냥..
- Total
- Today
- Yesterday
- Swift inout
- Swift
- Swift Error Handling
- Swift joined
- Swift final
- ios
- Swift 프로퍼티
- Swift Leetcode
- 원티드 프리온보딩
- 2023년 회고
- RIBs tutorial
- Combine: Asynchronous Programming with Swift
- Class
- swift programmers
- swift 고차함수
- swift reduce
- swift (programmers)
- Swift 내림차순
- Swift RIBs
- Swift joined()
- Swift 알고리즘
- iOS error
- CS 네트워크
- swift property
- Swift ModernRIBs
- RTCCameraVideoCapturer
- swift protocol
- removeLast()
- Swift init
- 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 |