앱등이에게 살충제를 뿌린다.
-
[iOS/Swift] XML 파싱하기앱등이에게 살충제를 뿌린다./iOS 2016. 5. 10. 14:41
가끔은 JSON이 아닌 XML을 파싱해야할 경우가 있다. 공공데이터는 XML도 아직 많이 있다고 들은 것 같기도 하고? 일단 결과부터 보고 시작 1. Singleview project에서 이 코드를 그대로 복붙하고 스토리보드에서 UILabel하나만 생성하여 연결해줍시다. (+UILabel의 numberOfLines는 좀 여유있게 20정도 잡아줬어요.) (+ats도 해결해줍시다. 참조:http://rhammer.tistory.com/67) http://api.androidhive.info/pizza/?format=xml에 있는 피자메뉴의 이름만 가져왔네요. 2. NSXMLParser NSXMLParser는 XML문서를 분석하는 클래스입니다. XML문서를 읽으며 태그를 만날때 마다 이를 delegate에 알..
-
[디버깅] Splitview에서 화면의 가로사이즈 때문에 생긴 버그앱등이에게 살충제를 뿌린다./iOS 2016. 5. 3. 00:12
QA를 안해봐서 그런지 QA들은 참 대단하다.귀신 잡는 해병보단 버그 잡는 QA들이 더 대단하다. 버그내용 - Splitview일 때 네비게이션 바의 타이틀이 길어지면 네비 바 가로 전체를 차지해서 백버튼과 네비BarItem을 가리게 됨. 당연히 엄청난 버그 네비게이션 바에 필요한 데이터를 model로 관리했는데, 이 때 타이틀뷰의 최대 길이를 (UIScreen의 width사이즈 - 네비바Item들의 width합)으로 지정해줬다.Split이 되어 앱의 width는 짧아 지지만 UIScreen의 width는 변함 없이 디바이스의 가로길이를 리턴한다.UIScreen의 width를 self.view.window의 width로 바꿔주고 해결 네이버 인강에서 봤는데, 앱은 항상 하나의 window를 갖고 있다고 ..
-
[iOS] 깔끔한 달력 오픈소스.앱등이에게 살충제를 뿌린다./iOS 2016. 5. 2. 00:28
달력 뷰를 직접 생성하려면 정말 머리아프다.타이레놀을 아끼기 위해서 오픈소스를 뒤져보던 중 너무나 깔끔한 것을 찾았다. 사용법(초간단 심쿵주의)먼저 pods에 추가해야하므로, Podfile에 pod 'FSCalendar' 을 추가해주세요. 추가한 뒤 pods update를 통해 라이브러리 추가해주시면 됩니다. 스토리보드에 UIView를 생성 추가한 뷰의 클래스명을 FSCalendar로 입력하면 자동으로 달력뷰 생성 간단한 사용 예시 import UIKit import FSCalendar class ViewController: UIViewController, FSCalendarDelegate, FSCalendarDataSource { //Delegate랑 Datasource프로토콜은 거의 필수로 구현한다고..
-
[Swift] String의 subString을 subscript로 구현해보자.앱등이에게 살충제를 뿌린다./Swift 2016. 5. 1. 18:18
Swift의 String은 substring기능이 참 부족한 것 같은데,편하게 String을 extension하여 subscript로 만들어보자. /* "abcde"[0] === "a" "abcde"[0...2] === "abc" "abcde"[2.. Character { return self[self.startIndex.advancedBy(i)] } subscript (i: Int) -> String { return String(self[i] as Character) } subscript (r: Range) -> String { let start = startIndex.advancedBy(r.startIndex) let end = start.advancedBy(r.endIndex - r.startInd..
-
[Apple Dev Reference - Swift] Trailing Closures 클로져를 파라미터로 간단히 사용하기앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 4. 26. 23:39
Trailing Closures함수의 파라미터로 클로져를 넣을 때가 있습니다. 그 중 함수의 파라미터 중 마지막 파라미터가 클로져일 경우에는 trailing closure로 코드를 적는 것이 더 편합니다. trailing closure란 클로져를 함수를 호출하는 부분의 바깥에 클로져를 적어주는 건데요, 아래 예를 보면 이해가 빠르실 듯 합니다. func someFunctionThatTakesAClosure(closure: () -> Void) { // function body goes here } // here's how you call this function without using a trailing closure: someFunctionThatTakesAClosure({ // closure's b..
-
[Apple Dev Reference - Swift] Generics (of Swift2.2)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 4. 24. 15:18
Generics제네릭 코드를 사용하면 좀 더 유연하고 재사용률이 높은 함수를 만들 수 있습니다. 제네릭을 통해 코드 중복을 방지할 수 있고, 함수의 역할을 좀 더 명백히 전달할 수도 있습니다. 제네릭은 Swfit의 가장 큰 강점 중 하나입니다. 수 많은 Swift라이브러리들이 이 제네릭을 사용하고 있습니다. 못 알아채셨을 수도 있는데, Swift 언어를 익히시는 동안 계속 제네릭을 사용해왔습니다. 예를 들어, Swift의 Array와 Dictionary는 둘 다 제네릭 컬렉션입니다. Array를 만들 때, Int타입 Array나 String타입 Array를 만들기도 하고, 또 여러분이 직접 만든 클래스 타입으로도 수 많은 종류의 Array타입을 만들어 보셨을겁니다. Dictionary에서도 유사하게 무수..