iOS에서 Custom View를 만들때 xib를 불러와서 많이 이용합니다. 하지만 이렇게 할 경우에, Storyboard에서 사용할 경우에 오류가 발생하게 되는데요. 에러가 발생하는것은 무조건 해결해야한다고 생각합니다. 뭐 다음과 같이 #if TARGET_INTERFACE_BUILDER를 이용하면 됩니다. 123456789101112131415161718192021222324 func loadNib(name: String? = nil) -> UIView? { let nib = { () -> UINib in var bundle: Bundle? #if TARGET_INTERFACE_BUILDER bundle = Bundle(for: type(of: self)) #endif let nibName = name..
요즘 그동안 잘 보지 않았던 부분에 대해서 조금 봐야하는 시간이 생겨서 생각하다보니까 제가 미디어쪽은 잘 안하고 있었더군요. 그래서 오늘은 간단한 미디어 플레이어에 대해서 알아보도록 하겠습니다. 예제는 간단하게 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..
Core Data iOS에서 Database를 조금 더 손쉽게 사용할 수 있도록 하는 방법SQLite를 직접적으로 사용하지 않은 상태에서 엑세스가 가능하게 해줍니다. - NSPersistentStore 데이터를 저장하는 파일을 나타냅니다.데이터가 저장되는 형식, 영구 저장소의 이름, 타입을 지정하여야 합니다.방식으로는 SQLite, Binary, Memory 세가지가 존재하는데, NSPersistentStoreCoordinator에 add하여 주면 됩니다.거의 SQLite를 사용합니다. - NSPersistentStoreCoordinator 데이터가 저장되어 있는 파일과 앱이 사용하는 객체 모델 사이를 중개하는 역할을 합니다.NSManagedObjectModel에서 정의된 모델을 이용하여 Coordina..
- Total
- Today
- Yesterday
- php
- ios
- golang
- rxswift
- nodejs
- MySQL
- cocoapods
- android
- Codable
- windows10
- war
- github
- Linux
- git
- Xcode
- Windows
- intellij
- tomcat
- docker
- Python
- ubuntu
- Spring
- Java
- centos8
- Kotlin
- go
- Gradle
- CentOS
- SWIFT
- enum
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |