나온지 한참되었지만 다시 한번 정리하는 마음으로 적어봅니다. 처음에는 이것 접했을때 그러한 생각이 들었네요. 많이 보던건데? 백엔드에서 잘 사용하는 스프링 프레임워크에서 사용하는 어노테이션이랑 같은 부분이죠. 무언가를 주입하여 주기 위해서 사용하는! 그런데 프로퍼티 래퍼도 같은 의미라고 보면 됩니다. A란변수에 이걸 적용해 달라고 하는것과 같습니다. 다음과 같이 사용 할 수 있습니다. @propertyWrapper struct TestPropertyWrapper { private var height = 0.0 var wrappedValue: Double { get { height } set { height = (newValue - 100) * 0.7 } } } struct TestStruct { @Tes..
프로젝트를 생성하고 pod을 가져와서 사용하는 방법까지는 설명하지 않도록 할게요. 대신에 이 곳에 설명이 아주 잘되어 있으므로 참고해봅시다. docs.mongodb.com/realm-legacy/docs/swift/latest/ Realm: Create reactive mobile apps in a fraction of the time Oops something went wrong You will not be receiving an email shortly with details docs.mongodb.com 그리고 사용 방법은 간단합니다. 이 기능을 사용하여야 하는 파일의 상단에 import를 추가합니다. import RealmSwift 보기 편하게 저는 write와 read를 만들거에요. privat..
Objective-C는 런타임에 정적으로 메소드를 호출하는 방식으로 되어 있습니다. 우리가 호출하는 Method를 적어줘도 컴파일러가 런타임에 있는지 확인하고 호출하는거죠. 이전에는 그래서 아주 생뚱 맞은 동작이 가능하게도 할 수 있었습니다. Int에 String을 넣어놓고 method가 없는데도 호출하게 하는... 물론 지금도 이런 동작이 가능하지만 이렇게 개발하지는 않죠. 이런 방식을 사용하기 때문에 정적으로 호출하는 방식중에 중간에 메세지를 가로채서 내가 만든 메소드를 호출할 수 있도록 할 수 있습니다. 이게 바로 메소드 스위즐링입니다. 대부분 어떻게 많이 사용하냐면 UIViewController 등에서 로그등 동일한 동작을 하고 싶을때 사용하게 됩니다. 사용방법만 알려드리고 주의 할점은 너무 남발..
swift의 dynamicMemberLookup에 대해서 알아볼까 합니다. 4.2에서 만들어진 녀석인데요. Dictionary 형태의 값을 가지고 subscript(dynamicMember:)를 가지고 값을 마치 property 처럼 사용이 가능하도록 한 겁니다. 다음과 같은 형태로 만들수 있어요. @dynamicMemberLookup struct PropertyDictionary { private let properties: [String: Any] init(_ dictionary: [String: Any]) { properties = dictionary } subscript(dynamicMember string: String) -> Any? { return properties[string] } } 자..
일반적으로 먼저 만들어져 있는 Class에 Extension 하여서 무엇을 만들게 되면 객체는 만들수가 없게 됩니다. 그런데 rx, snp, kf 등은 이렇게 하는 방법으로 무언가를 만들어서 사용합니다. 우리도 이렇게 하는 방법을 만들어 봅시다. * 실제로는 이걸 만들어서 여러군데에 사용하고 싶기 때문에 한번만 만들고 나머지는 그냥 다 상속 받아서 사용할겁니다. 1. struct Extension struct Extension { let base: Base init(_ base: Base) { self.base = base } } RxSwift 같은것들을 보면 위와 비슷한 코드가 있습니다. 이것은 뒤에 만들 ExtensionSupport의 값을 저장하는 용도로 만들기 위해서 두도록 합니다. 2. prot..
- Total
- Today
- Yesterday
- tomcat
- war
- github
- php
- Gradle
- golang
- go
- Windows
- CentOS
- android
- enum
- Xcode
- git
- Linux
- windows10
- MySQL
- cocoapods
- Spring
- Python
- centos8
- Codable
- Java
- Kotlin
- ios
- ubuntu
- docker
- SWIFT
- rxswift
- intellij
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |