모바일/iOS 31

[Swift] 프리버전과 유료버전 구별해서 두개 프로덕트 출시 (안드로이드 - Product Flavor)

참고 : https://www.andyibanez.com/writing-a-lite-and-pro-versions-of-your-app-in-swift/ 어렵지않다. 참고링크를 참조한다. 그냥 냅다 프로젝트에 가서 Target에 하나 카피를 한다. 그리고 Build Settings --> Swift Compiler - Custom Flags --> Other Swift Flags --> 디버그 혹은 릴리즈에 가서 "-D" -DDEBUG -DPREMIUM 문구를 써주면 된다. 물론 프리버전은 -DFREE 이제 빌드시마다 알아서 다르게 컴파일이 된다. 스위프트는 아예 코드를 분기해서 써먹을수 있다. 그리고 코드에 가서 다음과 같이 #과 함께 분기문을 타게하면 되는데 다음과 같다. 아 쉽다.

모바일/iOS 2016.08.15

[Swift] 에러 확인 및 코어데이터 모델 생성시 주의

제일 왼쪽 메뉴에서 대화창처리 되어있는 아이콘 (맨 오른쪽)을 누르면, 콘솔이 켜지면서 런타임 에러에 대한 정보가 시시각각으로 확인 가능.또한 코어데이터에서 모델 생성시, Entity 창의 Class에서 제대로 클래스를 등록해주어야 캐스팅이 될수있다. 그 클래스는 사실 아래의 패키지까지 표시해주어야 할필요가 있는데 잘 안되는것으로 보아 아래의 코드로 대체한다.해당하는 클래스로 가서 위에 어노테이션을 달아준다. 그럼 제대로 캐스팅이 된다.@objc(클래스명) 출처 : http://stackoverflow.com/questions/25897122/executefetchrequest-throw-fatal-error-nsarray-element-failed-to-match-the-swift

모바일/iOS 2016.08.13

as 연산자 이해

출처 :http://soooprmx.com/wp/archives/6240 as 연산자를 옵셔널과 함께 사용하는 경우항상 캐스팅에 성공하는 것이 확실한 경우 (이는 컴파일러가 판단할 수 있다.) as를 사용한다. 예를 들어 NSString은 항상 String으로 변환가능하므로 as를 쓴다.let ns: NSString = "Good morning." let st = ns as String다운 캐스팅의 경우 as?를 쓴다. 왜냐하면 다운캐스팅은 어떤 경우에 실패할 수 있기 때문이다. 따라서 as?의 경우 성공한 경우에는 옵셔널로 캐스팅되고 그렇지 않은 경우에는 nil이 리턴된다.as!는 as?의 리턴타입이 암시적으로 언래핑된 옵셔널타입으로 만든다. 즉 캐스팅에 성공한 경우, 리턴 타입을 다시 옵셔널 언래핑하..

모바일/iOS 2016.08.13

[Swift] 웹뷰에서 자바스크립트 실행 방법

다음의 메서드가 준비되어있다.webView.stringByEvaluatingJavaScriptFromString()인자에다가 string 을 넣어주면 된다. 일단, 웹뷰를 통해 페이지를 전부 로딩되고 난후 불러와야 한다.func webViewDidFinishLoad(webView: UIWebView)위와같이, 페이지가 불러왔을때 사용가능하게 하면 된다. 다만, 프레임이 여러개가 있으면 여러번 호출될수 있으므로 이를 방지하여야 한다.전체 코드는 다음과 같다.

모바일/iOS 2016.08.06