Swift
-
[Apple Dev Reference - Swift] Strong Reference Cycles for Closures앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 15. 23:13
서로 강한참조를 하면 절대 메모리에서 사라지지 않는다 Strong Reference Cycles for ClosuresStrong Reference Cycles for ClosuresARC & Strong Reference Cycle에서는 두 인스턴스가 서로 강하게 참조할 때 순환 참조(Strong Reference Cycle)가 발생하는 것을 살펴보았습니다. weak 참조와 unowned 참조를 사용하여 이를 해결하는 방법도 살펴보았습니다. 클로져에서도 비슷한 경우가 있습니다. 클로져의 바디에 인스턴스의 프로퍼티나 인스턴스를 캡쳐하면 순환 참조가 발생할 수 있습니다. self.someProperty처럼 클로져에서 해당 인스턴스의 프로퍼티에 접근할 때나 self.someMethod()와 같이 인스턴스의 ..
-
[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이..