분류 전체보기
-
[Apple Dev Reference - Swift] Nonescaping Closures앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 22. 14:50
Nonescaping Closures함수의 파라미터로 클로져가 전달될 때가 있습니다. 이 때, 함수가 종료된 후에도 함수 외부에서 파라미터인 클로져를 사용하는 경우가 있습니다. 이 경우 우리는 클로져가 escape(탈출)되었다고 합니다. 그리고 함수를 정의할 때, 클로져 파라미터에 @noescape키워드를 사용하여 escape하지 않는 클로져라는걸 명시해줄 수 있습니다.클로져 파라미터 앞에 @noescape를 붙여주면 컴파일러는 이 클로져의 lifespan(생명주기같은?)에 대해 더 잘알기 때문에 좀 더 optimization을 해주게 됩니다. 예를 들어, sort(_:)메소드는 클로져를 파라미터로 받습니다.(배열의 element들을 정렬하는 데에 사용되죠) 이 때, 해당 클로져는 element정렬이 끝..
-
[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()와 같이 인스턴스의 ..
-
[Apple Dev Reference - Swift] ARC & Strong Reference Cycle앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 15. 02:01
Automatic Reference Counting Swift는 메모리관리를 위해 ARC(Automatic Reference Counting)를 사용하고 있습니다. 대부분 이 ARC덕분에 여러분은 메모리 관리를 신경쓸 필요가 없습니다. ARC는 필요없는 인스턴스를 자동으로 메모리에서 해제함으로써 메모리관리를 합니다. 하지만 가끔은 ARC가 여러분의 코드로 메모리 관리를 할 때, 추가적인 정보가 필요할 때가 있습니다. 어떤 경우인지, 또 그런 상황은 어떻게 해결해야할 지 이 챕터에서 다뤄보겠습니다. Note : 참조 카운트는 클래스의 인스턴스에만 적용됩니다. Structure와 Enumeration은 Value타입이기 때문에 참조 카운팅이 필요 없습니다. How ARC Works 새로운 인스턴스가 생성되면..
-
[Apple Dev Reference - Swift] Implicitly Unwrapped Optionals앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 15. 01:57
Implicitly Unwrapped Optionals아시겠지만 옵셔널이란 "no value"를 나타낼 수 있는 타입입니다. 옵셔널은 if문을 통해서 변수에 값이 있는지를 체크하고 옵셔널 바인딩을 통해 값을 해제하여 사용할 수 있습니다. 하지만 가끔은 데이터의 구조상 '항상' 값을 갖는 옵셔널이 있을 수 있습니다. 이런 경우에는 옵셔널을 언래핑할때 굳이 nil체크를 할 필요가 없겠죠. 항상 값을 갖고 있으니 언래핑이 안전하게 될 것입니다.이런 종류의 옵셔널을 implicitly unwrapped optional이라고 합니다. implicitly unwrapped optional을 선언할 때는 타입에 물음표(String?)가 아닌 느낌표(String!)를 붙여주어야 합니다.implicitly unwrapp..
-
[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에 알..