전체 글
-
[Swift] Set(집합)이라는 컬렉션앱등이에게 살충제를 뿌린다./Swift 2015. 11. 11. 23:19
집합(Set)은 배열과 유사합니다. 같은 타입의 서로 다른 값을 저장하지만 순서가 보장되지 않습니다. 배열은 같은 값이 중복되어 포함될 수 있고 순서또한 있다는 차이점이 있습니다. 집합은 Hash값을 이용하여 데이터를 저장하기 때문에 저장되는 데이터는 Hash연산을 할 수 있는 데이터여야 합니다. 스위프트의 기본 데이터타입들은 모두 Hash를 지원하지만 커스텀 타입의 데이터 타입은 스위프트 라이브러리에서 제공하는 Hashable프로토콜을 구현해주어야 합니다. 어쨋든 되긴 되나보네요. 집합을 정의하는 방법은 아래와 같습니다. var genres : Set = ["Classic", "Rock", "Balad"] 배열과 같은 데이터 타입으로 초기화되고 있지만 Set이라는 Type annotation을 사용하여..
-
[Swift] guard가 if보다 나은 이유?앱등이에게 살충제를 뿌린다./Swift 2015. 11. 10. 22:58
Swift 2.0에 guard가 등장했다. 이 놈이 평범한 if문보다 어떤 강점이 있는걸까? 복잡도를 최소화해보자. 조건문은 모든 프로그래밍 언어에서 기본적으로 갖추고 있는 요소입니다. Obj-C도 Swift도 예외는 아닙니다. 어떤 애플리케이션을 만들더라도 조건문에 의한 복잡도를 벗어나는 완벽한 방법은 없을 것입니다. 불행히도, 조건문은 종종 복잡도를 높이는 원인이 되곤 합니다. 촘촘히 쓰여진 조건문은 디버깅의 방해요소가 되기도합니다. 촘촘한 if문을 피하기 위해서 아래와 같은 방법을 사용하기도 했어요. - (void)fetchListOfCustomers:(NSArray *)customers { if (!self.reachable) return; if (!self.connected) return; if..
-
[iOS] 스크롤뷰의 페이징과 페이지컨트롤, Paging and UIPageControl of UIScrollView앱등이에게 살충제를 뿌린다./iOS 2015. 11. 8. 22:22
1. pageControl의 indicator가 페이지변환이 완전히 끝났을 때 이뤄진다. 2. pageControl의 indicator가 페이지변환이 되는 도중에 바뀐다. Code - 그냥 복붙하면됨 // // // ViewController.m // ScrollviewPaging // // Created by SH on 2015. 11. 8.. // Copyright © 2015년 SH. All rights reserved. // #import "ViewController.h" #define VIEW_COUNT 10 #define WIDTH_VIEW 250 #define HEIGHT_VIEW 180 @interface ViewController () @property (nonatomic, strong)..
-
[iOS] iOS9에서 canOpenURL, openURL에 어떤일이..?앱등이에게 살충제를 뿌린다./iOS 2015. 10. 22. 23:39
URL Scheme이란?"http://www.apple.com"과 같은 URL은 익숙하실텐데요. iOS에서도 이런 URL시스템이 제공됩니다. http를 비롯하여 mailto://같은 것들이 있습니다. http는 사파리와 연결되고 mailto같은 경우는 메일앱과 연결이 되지요. 스토어에서 내려받은 앱들에게도 이러한 URL이 임의로 등록될 수 있습니다. 이렇게 등록된 임의의 URL은 여러 용도로 사용됩니다. 웹에서 컨텐츠를 보다가 "OO앱에서 열기"라는걸 보신적이 있으실텐데, 이경우도 이에 해당하죠. (샌드박스 형식으로 인해)iOS에서는 앱간의 통신이 다소 제한적이기 때문에 URL은 앱간의 통신에 주로 사용되었습니다. Drafts, Launch Center Pro, Workflow 와 같은 앱들이 URL s..
-
[iOS] dismissViewController: Animated:와 popViewController: Animated:를 이해해보자.앱등이에게 살충제를 뿌린다./iOS 2015. 10. 21. 00:09
[self dismissViewControllerAnimated:YES completion:nil]; dismissViewController: Animated: 는 presentViewController: animated: completion: 에 의해 호출된 뷰컨트롤러를 사라지게 만드는데 사용됩니다. Modal Controller(주로 밑에서 위로 뷰가 나타남)의 역할을 할 때, 이 메소드를 사용해서 사라지게 합니다. [self.navigationController popViewControllerAnimated:YES]; popViewController: Animated: 는 pushViewController: animated: 에 의해 호출된 뷰컨트롤러를 사라지게 만드는데 사용됩니다.Navigatio..
-
[iOS] supportedInterfaceOrientations 메소드를 이해해보자.앱등이에게 살충제를 뿌린다./iOS 2015. 10. 20. 23:37
//Swift func supportedInterfaceOrientations()->UIInterfaceOrientationMask //Objective-C -(UIInterfaceOrientationMask)supportedInterfaceOrientations Return Value 지원하고 싶은 회전방향(총 4가지)을 담는 Bit mask를 리턴합니다. Bit mask의 종류는 여기를 클릭해서 종류를 살펴보세요. 이 메소드는 절대로 0을 리턴해서는 안됩니다. **Bit Mask는 비트 연산자를 사용해 여러가지 정보를 하나의 변수에 담을 수 있는 기법입니다. Discussion 사용자가 디바이스의 방향을 바꿀 때, 시스템에서 이 메소드를 호출시킵니다. Root ViewController 또는 화면을 ..
-
[iOS] Segue의 종류앱등이에게 살충제를 뿌린다./iOS 2015. 10. 18. 23:03
뷰컨트롤러간의 전환 역할을 하는 Segue에 대해 알아보자. 커스텀을 제외하고 4가지의 Segue가 존재 합니다. 1. Show destinationViewController를 네비게이션 스택에 쌓으면서 보여줍니다. 새로 나타나는 화면은 오른쪽에서 왼쪽으로 이동하며 보여지게 됩니다. 네비게이션바에 Back버튼이 생기게 되고 아이패드, 아이폰 모든 디바이스에서 똑같이 작용합니다. Example: 메일 앱에서 메일을 누를 때 2. Show Detail UISplitViewController에서 두번째 뷰 컨트롤러에 있는 내용을 대체하게 됩니다. 네비게이션 스택에는 영향을 주지 않습니다. Example: 아이패드에서 가로화면으로 이메일을 보고 있을 때, 이메일 내용을 클릭하면 디테일 뷰의 내용이 바뀌게 됩니다..
-
[iOS] App Transport Security has blocked a cleartext HTTP을 대응해보자.앱등이에게 살충제를 뿌린다./iOS 2015. 10. 11. 04:37
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file. 라는 에러메시지와 함께 Web-App 통신이 되지 않는다구요? XCode 7에서 iOS9을 지원중이시겠군요. 1. 원인. 왜 때문일까? ATS(App Transport Security)는 App과 Web간의 연결에 보안을 강화하기 위한 것입니다. 애플에서 지정한 여러 보안조건들로 이루어져 있습니다. ATS는 NSURLConnection, CFURL, NSURLSession에서 사용되는데 이 때 애플에서 지정..