Swift
-
[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에 알..
-
[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..
-
[날씨API] SK플래닛 날씨API사용하기 using Swift in iOS코딩은 주댕이로/인터넷 2016. 5. 1. 01:25
https://developers.skplanetx.com/develop/app/ 로 이동하여 회원가입 후 appKey를 발급 받는다. GET요청을 한다.요청 URL : http://apis.skplanetx.com/weather/날씨API에도 여러 종류가 있습니다. 예를 들면, 현재날씨 분별, 현재날씨 시간별, 초단기예보, 단기예보, 태풍정보 등등 이 종류에 따라 URL path가 달라집니다.저는 현재날씨 분별을 사용해서 요청 URL이 http://apis.skplanetx.com/weather/current/minutely입니다.날씨API 종류는 https://developers.skplanetx.com/apidoc/kor/weather/information/?leftAppId=15048899 에서 ..
-
[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에서도 유사하게 무수..
-
[Raywenderlich - iOS/Swift] Alamofire 사용하기앱등이에게 살충제를 뿌린다./iOS 2016. 4. 15. 00:34
Alamofire는 iOS와 OS X에서 사용하기 위한 Swift기반의 HTTP 네트워킹 라이브러리입니다. 애플의 네트워킹 파운데이션을 기반으로 많은 기능을 제공하고 있습니다. Alamofire는 reponse/request 메소드, JSON parameter와 response serialization, authentication 등의 기능을 제공합니다. 이번 튜토리얼에서는 파일 업로드나 RESTful API에서 데이터를 요청하는 작업과 같은 기본적인 네트워킹 작업에 대해서 소개합니다. Alamofire는 AFNetworking의 Objective-C코드를 전혀 상속하지 않고 모두 Swift로 새롭게 만들었다는 점에서 참 대단한 라이브러리입니다. 시작하기 전에, HTTP네트워킹과 NSURLSession이..
-
weak property에 클래스 초기화구문을 대입하면 OOO. (안된다)앱등이에게 살충제를 뿌린다./iOS 2016. 4. 7. 18:39
let frame = CGRect(x: 0, y: 0, width: 100, height: 100) weak var myButton: UIButton! var myButtonNotWeak: UIButton! override func viewDidLoad() { myButton = UIButton(frame: frame) myButtonWithoutWeak = UIButton(frame: frame) }라는 코드가 있다고 할 때, myButton은 nil이 되고 myButtonWithoutWeak는 UIButton객체를 갖게 된다. 이게 왜 문제냐면.. 이 코드가 아래와 같았다면?let frame = CGRect(x: 0, y: 0, width: 100, height: 100) weak var myButt..