Swift 를 쓰다보면 [1,2,3,4,5,6].map { return $0 * 2 } // [2,4,6,8,10,12] 류의 클로저를 많이 볼 수있다. 많이 쓰는 map 등의 고차함수에서도 그렇고 수많은 클로저에서 많이 볼 수 있다.
요새는 delegate 보다는 closure를 많이 쓰는 추세고, 나역시 클로저를 많이 쓰는 추세다. 다만 약간의 문제라함은 참조를 함에 인해 메모리 릭이라는 이슈를 가질 수 있게 된다.
예를 들면 var tapGesture: () -> Void = { [weak self] _ in guard let self = self else { return } self.label.text = "12" } var tapGesture: () -> Void = { [weak viewModel] _ in viewModel?.something() } 형식을 쓸 수 있는데 이때 클로저 안의 대괄호 (brakets)란 무엇일까?
이것은 클로저의 값 포착 (Variable c...
원문 링크 : [Swift] 클로저안에 있는 대괄호 brakets in swift closure (feat. variable capturing of closure, capture list)