You can make anything
by writing

C.S.Lewis

by Tilltue Nov 14. 2016

Swift3.0, @escaping 블랙잭 카드카운팅

swift3.0,SE-0103

Swift 3.0 의 변경점중SE-0103 에 대한 내용이다.

자세한 링크는 아래.


비동기 작업을 수행하는 함수가 있고, completion closure 를 인자로 받는다.

2.0 의 아래와 같은 형태로 가능했다.


class MyClass {

func someAction(completion: () - ()) {

DispatchQueue.main.async {

completion()

}

}

}


3.0 에서는 에러가 발생한다.

블랙잭 카드카운팅 use of non-escaping parameter 'completion' may allow it to escape

Fix it Parameter 'completion' is implicitly non-escaping

블랙잭 카드카운팅


Swift 3.0 @escaping 블랙잭 카드카운팅 의 경우에 명시를 해주도록 변경되었다.

( @noescape 가 기본이다.)


escaping closure 는 closure 를 인자로 받는 함수에서, 해당 closure 가 함수가 반환된 이후에 수행되는 경우를 말한다.

아래는 샘플 코드이다.

class 블랙잭 카드카운팅Sample {

func nonescapeSample(블랙잭 카드카운팅 : () - Void ) {

블랙잭 카드카운팅()

}

func escapeSmaple(블랙잭 카드카운팅: @escaping () - Void ) {

DispatchQueue.main.async {

블랙잭 카드카운팅()

}

}

}









브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari