본문 바로가기

swift

(8)
스위프트 프로그래밍 : 객체지향, 함수형, 프로토콜 지향 패러다임까지 한번에!(Swift3) 초고수 야곰님이 쓴 swift3 책이 출시했습니다. 이번에는 ebook이 아니라 종이책입니다. 제가 베타리딩에 참여하고 서평도 남겼어요. 새로운 경험을 하게 해준 야곰 고마워요~ http://www.yes24.com/24/Goods/34717018?Acode=101
[Admob] 앱 실행시 전면광고 실행 앱을 실행해면 전면 광고를 실행해서 보여주게 하였다. 그러던 중 admob 으로 부터 메일 한통을 받았다. 경고를 받은 앱은 Android 앱이었지만 iOS에서도 동일한 방식으로 나오고 있었다. iOS도 수정이 필요한 상황이었다. 그래서 정책을 알아 보기로 했다. 여러 가지 정책이 있어서 모든 것을 다 소개할 수도 없고 내가 필요한 것은 기존 상태를 유지하면서 고칠 수 있는 방법이었다. https://support.google.com/admob/answer/6201362?hl=ko&ref_topic=2745287 `예기치 않게 실행되는 삽입 광고` > `허용되지 않는 광고 구현의 예: 앱을 열 때 삽입 광고 실행` 이 경우가 경고를 받았을 때의 경우이다. 이걸 이제 어떻게 수정해야 할까.. 이 방법대로 ..
Swift 무한(?)빌드 Swift build를 하다가 컴파일이 끝나지 않고 계속되는 현상을 발견했다. Appcode로 build 중이었는데 swift의 메모리가 끝없이 계속 증가했다. 의심가는 코드를 제거해 보니 빌드가 잘 된다. 아.. 엄청나다. 의심가는 코드를 Playground로 재작성해보았다. ?? 를 남발해서 그런것으로 보이는데... 이래도 되는건가?let optionalString: String? = nil let abc: [String:Int] = [ "a": Int(optionalString ?? "") ?? 0, "B": Int(optionalString ?? "") ?? 0, "c": Int(optionalString ?? "") ?? 0, "d": Int(optionalString ?? "") ?? 0, "..
[Perfect] Dependency 추가 프로젝트도 생성했으니 이제 뭔가 해보자. 음.. 아무래도 Backend 이고 하니... DB가 있어야 겠다. 많이 쓰는 Mysql 로 해보자. MySQL 을 사용하려면 MySQL용 Database connector 를 추가해야 한다. package.swift 의 dependency로 추가 가능하다.import PackageDescription let package = Package( name: "FirstPerfectProject", dependencies: [ .Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 2, minor: 0), .Package(url:"https://github.com/Per..
[Perfect] 프로젝트 생성하기 Swift 서버 프레임워크가 몇가지 있는데 그중에 가장 먼저 접하게 된 것이 Perfect(https://www.perfect.org) 이다. 처음에는 문서도 부족해서 자세히 알아 볼 기회가 없었다. 오늘 새로운 서버 기능을 추가하기 위해 어떤 프레임워크를 써볼까 하다 갑자기 Perfect가 떠올라 문서를 읽어 보기로 했다. 새로 프로젝트를 시작하는 것은 어려운 일이 아니다. 알고 보니 정말 간단하다. 그 간단한것을 다시 한번 정리해 본다. Swift3 에 맞춰 Perfect 2가 출시되었다. 이 내용도 Swift3, Perfect2 에 맞춰 작성한다. 새로운 프로젝트를 생성하는 방법에는 크게 2가지가 있다.Template Proejct 를 받아서 수정한다. (https://www.perfect.org/..
Swift keyboard notification Swift version : 1.2iOS version : 8.4 Swift 문법도 익숙치 않은데 NSNotificationCenter 사용하려는데 막히는 부분이 많고... Notificaiton 에서 keyboard 관련 정보 가져오려는데.... 왜이리 오류가 많은지.. 다음과 코드가 동작함을 확인하였으니 참고하세요. NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil) func keyboardWillShow(notification: NSNotification) { let userInfo = no..
[Swift] The Basics 변수/상수변수와 상수는 이름을 가지고 있다. 상수는 값을 변경할 수 없다. 변수는 값을 변경할 수 있다. 변수/상수 선언변수의 type은 한번 정해지면 변경될 수 없다.상수는 let 키워드로 선언하고 변수는 var 키워드로 선언한다.let maximumNumberOfLoginAttempts = 10var currentLoginAttempt = 0한번에 여러 변수/상수를 선업할 수 있다.var x = 0.0, y = 0.0, z = 0.0 타입 지정 (Type Annotations)변수/상수를 선언할때 type을 명확하게 하기 위해 type을 지정할 수 있다.welcomeMessage 이름의 변수가 String값을 가지게 된다면 var welcomeMessage: String(:)이 의미하는건 `... 의..
[Swift] types 개인적으로 공부하기 위해 번역해서 남겨둔다. Swift에는 2가지 type이 있다.named types이름이 정해진 type이다.class, struct, enumeration, protocol 를 포함한다.사용자가 만든 임의의 class이름을 Person 이라고 하면 Person또한 named type이며 user-defined named type이라 한다.standard library에는 array, dictionary 등 많은 named type들이 제공된다.data type은 number, character, string 등의 named type 을 말한다. Swift standard library에 structur로 구현되어 있다. 필요에 따라서 원하는 동작을 extend할 수 있다. (objc..