본문 바로가기

#swift

[iOS] Swift defer 블록 defer 블록 : 메소드 에서 코드의 흐름과 상관 없이 가장 마지막에 실행되는 블록 SQLite3를 사용할 때 참고 하면 좋을 듯 하다. func dbExecute(dbPath: String) { // 1 var db: OpaquePointer? = nil guard sqlite3_open(dbPath, &db) == SQLITE_OK else { print("Database Connect Fail") return } // 2 defer { print("Close Database Connection") sqlite3_close(db) } // 3 var stmt: OpaquePointer? = nil let sql = "create table if not exists sequence (num integ.. 더보기
[iOS] Swift 원시 자료형 복사 아래 와 같은 소스에선 결과가 어떻게 나올까? 123456var arr = [String]() arr.append("append1") var arrCopy = arrarrCopy.append("append2")cs ["append1"] ["append1", "append2"] 이렇게 나옵니다. 왜 똑같이 ["append1", "append2"] 나오지 않고 각자 별개로 동작 할까요? 이건 Swift가 원시 자료형이 구조체로 되어 있어서새로운 변수에 넣을 경우, 새로운 데이터가 생깁니다. 그래서, reference가 아닌 value라고 보면 되겠네요. 참고하면 좋을듯 해서 공유 합니다. 더보기
[iOS][Animation] UIView resume, pause 애니메이션을 정지 했다가 다시 돌리는 함수를 공유 하고자 합니다. 1234567891011121314func pauseLayer(layer: CALayer) { let pausedTime = layer.convertTime(CACurrentMediaTime(), from: nil) layer.speed = 0.0 layer.timeOffset = pausedTime } func resumeLayer(layer: CALayer) { let pausedTime = layer.timeOffset layer.speed = 1.0 layer.timeOffset = 0.0 layer.beginTime = 0.0 let timeSincePause = layer.convertTime(CACurrentMediaTime(.. 더보기
[iOS] 백그라운드, 포그라운드 확인 iOS는 전혀 App이 Background 인지 Foreground 인지 지원 알려주는 함수가 있다. AppDelegate.swift를 보시면 func applicationDidEnterBackground(_ application: UIApplication) {}func applicationWillEnterForeground(_ application: UIApplication) { } 위 두 함수를 통해서 파악을 할 수 있다! 하지만 이건 AppDelegate 인데, ViewController에서 어떻게 콜백을 받냐??구글링 해보면 여러가지가 있는데요. 그중에서 전 NotificationCenter를 이용하면 아주 쉽게 콜백을 받을 수 있습니다. 12345678910111213141516171819ove.. 더보기
[오늘의 한줄][20170418] Swift [클래스 비교] A a1 = new A(); A a2 = new A(); 1. Java 에서는 a1 == a2 하면 true let a1 = A() let a2 = A() 2. Swift 에서는 a2 !== a2 하면 false swift 에서는 메모리 비교 이므로 다르다고 판단 한다. [Swift]1. set 함수에서는 mutating을 써라2. 타입 메소드는 class, 타입 프로퍼티는 static 을 써라3. 프로토콜은 자바의 Interface 라고 생각해도 될듯 더보기
[Swift] 스위프트 테스트 사이트 Swift를 공부하면서 간단하게 테스트 해볼 수 있는 사이트를 찾는 도중괜찮은 사이트가 있어서 공유 합니다. 참고하세요. https://iswift.org/playground 더보기