(Swift) 클로저 내부에서 self를 캡쳐하는 방법

항상 [unowned self]를 써야 할까요? http://stackoverflow.com/questions/24320347/shall-we-always-use-unowned-self-inside-closure-in-swift 의 내용중 일부를 번역하였습니다. 아니오, 분명히 [unowned self]를 쓰지 말아야할 상황이 존재합니다. 특정한 클로져가 호출되었을 때에 그 시점까지 self가 파괴되지 않고 살아있음을 보장할 필요가 있을 때가 있단 말이죠. 예를 한가지 들어봅시다. 비동기 네트워크 요청을 하고, 요청에 대한 응답을 받았을 때 self로부터 어떤 무언가를 호출해야 한다고 가정해봅시다. 비동기 요청이 끝나는 시점 이전에 해당 객체가 해제되어 사라졌다면 프로그램이 뻗고 말겁니다. 그렇다면 언제 unowned self 나 weak self를 써야하는가? 바로 강한 참조 사이클이 만들어질 때입니다. 이는 두개 이상의

grep

grep grep은 주어진 파일(들)이나 표준입력에서 주어진 패턴과 매칭되는 라인들을 필터링하여 출력해준다. 기본적으로 grep은 매치되는 라인들을 출력한다. fgrep, egrep도 사용가능한데 이들은 각각 -F, -E 옵션으로 통합되었으며 현재는 오래된 스크립트와의 호환을 위해서만 남겨져 있다고 생각하면 된다.

(Swift) Property

Swift의 Property 객체 인스턴스는 그 내부에 어떠한 상태를 저장하기 위한 저장공간을 가질 수 있는데, 객체의 외부에서는 기본적으로 이 상태를 저장하는 스토리지를 액세스할 수 없다. 따라서 객체를 디자인하는 시점에 외부에서 어떠한 상태값을 읽거나 쓰도록 하려면 객체 외부에서 액세스할 수 있도록 하는 API가 필요하다. Objective-C에서는 이러한 API를 “프로퍼티”라 정의하고 클래스 내 특정 멤버에 대해서 getter, setter를 정의해서 특정 멤버의 값을 읽거나 쓸 수 있게끔했다. Swift에서는 인스턴스 멤버와 접근자 메소드라는 분리된 개념자체를 아예 프로퍼티라는 개념으로 통합했다. 프로퍼티는 크게 저장 프로퍼티(stored property)와 계산 프로퍼티(computed property)로

project euler 50

오일러 프로젝트 50 번 41은 소수이면서 다음과 같은 6개의 연속된 소수의 합으로도 나타낼 수 있습니다. 41 = 2 + 3 + 5 + 7 + 11 + 13 이것은 100 이하에서는 가장 길게 연속된 소수의 합으로 이루어진 소수입니다. 1000 이하에서는 953이 연속된 소수 21개의 합으로 가장 깁니다. 1백만 이하에서는 어떤 소수가 가장 길게 연속되는 소수의 합으로 표현될 수 있습니까? http://euler.synap.co.kr/prob_detail.php?id=50 최적화가 매우 중요한 문제이다. 1분 이내에 푸는 방법을 찾기도 꽤 벅찼다.