이전글 http://mrgamza.tistory.com/562 에서 아주 간단한 방법으로 json을 파싱하는 방법을 알아보았습니다. 그래서 제 입장에서도 이것저것 하다가 느낀점과 추가되어야 할 부분에 대해서 적어봅니다. 그냥 아주 간단한 내용만 적어볼까 합니다. 더 자세한 extension 같은것들은 블로그에서 다루지 않도록 하겠습니다. 아마 이번 글 이후에 적게 되겠죠? 이전 글은 일반적으로 서버에서 주는 json의 key값을 이용하여 decoding 하도록 하는 예제였습니다. 서버에서 주는 값과 우리가 사용하는 값을 다르게 할수 없을까? 이전에 사용하던 ObjectMapper같은 경우에는 거의 무조건 값을 매핑하여 주는 방법으로 사용을 하였습니다. 그래서 response data에 스네이크 형태로 내..
swift를 사용하면서 이 문법을 사용하는일은 거의 없었습니다.왜냐면 동일한 리턴을 처리하는 부분이있거나 하지는 않았고 비교후에 다른값을 리턴하는 경우가 생기기는 하였기 때문입니다. defer란?현재 스코프를 벗어날 경우에 실행한다는 말입니다. 다시 말해서 현재 사용하고 있는 코드의 블럭안에서 실행되는 마지막 코드가 실행되고 이것이 실행됩니다. 뭐 이렇게 말해도 말이 좀 어렵기는 합니다만... defer를 특정해서 검색하고 들어오신 분들이 많을것 같아서 줄일까합니다. 자 다음 코드를 보면 이해가 쉽겠죠? 12345678910func test() { defer { print("3") } print("2")} print("1")test()cs 결과가 어떻게 나올까요?1, 2, 3 으로 나옵니다. 위에서 아래..
요즘 그동안 잘 보지 않았던 부분에 대해서 조금 봐야하는 시간이 생겨서 생각하다보니까 제가 미디어쪽은 잘 안하고 있었더군요. 그래서 오늘은 간단한 미디어 플레이어에 대해서 알아보도록 하겠습니다. 예제는 간단하게 Video를 플레이하는 방법입니다. 12345678910111213141516171819202122232425import UIKitimport AVKitimport AVFoundation class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) playVideo(name: "TestVideo", type: "m4v") } private func..
swift의 @escaping 에 대해서 적어볼까 합니다.개념만 알면 아주 쉬운 개념입니다. 저는 swift4를 사용합니다. 다음과 같이 우리는 function에 closure를 넘겨주어서 사용이 가능합니다. 123func test(block: () -> ()) { block()}cs 그렇다면 다음과 같으면 어떨까요? 12345func test(block: () -> ()) { DispatchQueue.main.async { block() }}cs 무언가 오류가 납니다. noescape closure가 탈출하려고 하였다고 합니다. 일반적으로 그냥 선언을 하여 주지 않는다면 @noescape가 적용되는 겁니다.그래서 적용을 하지 않았다고 나오는거죠. 12345func test(block: @noescape..
inline?일반적인 함수들은 런타임 시점에 function을 다른 주소에 있는 함수를 호출하게 되고 이 주소에서 다시 원래의 주소로 점프하면서 동작을 하게 됩니다.이 동작에서 점프할 위치등을 기억하느라 비용이 발생하게 되는데 inline 함수는 컴파일 시간에 function을 코드로 붙여서 만들어주는 기능을 이야기합니다. * 현대의 최신 컴파일러들은 최적화 기능이 들어가 있기 때문에 궂이 이 기능을 붙이지 않아도 컴파일러 자체가 이것은 인라인하는게 이득이라고 판단을 한다면 자동으로 inline하여 주게 됩니다. Swift의 inline.swift는 항상 최신을 사용한다는 가정하에 진행하겠습니다.저는 일단 4.x 버전을 사용하고 있습니다. 일반 함수는 다음과 같이 선언하게 됩니다. 123func test..
- Total
- Today
- Yesterday
- android
- Java
- windows10
- golang
- MySQL
- centos8
- Spring
- war
- Codable
- rxswift
- github
- Python
- CentOS
- Gradle
- intellij
- git
- Linux
- nodejs
- go
- Windows
- Xcode
- ios
- ubuntu
- docker
- Kotlin
- enum
- tomcat
- cocoapods
- SWIFT
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |