공공데이터 RESTful api 를 가져오는 간단한 코드를 작성했다. resultCode와 resultMsg를 가져와보자. 사실 이렇게 생겼는데,, 쉬운거 부터 가져와보자..url을 담을 수 있는 구조체를 만드는데, 이 안에 클로져가 있다.클로져는 미리 선언되어있지 않
클로저 공부하다 보니, 캡쳐라는 말이 자주 나온다. 원본값이 사라져도 클로저의 body에서 값을 활용할 수 있도록 가져오는것. 스코프에 있는 VALUE또는 REFERENCE타입의 변수를 캡쳐할때 REFERENCE 캡쳐한다. 스코프는 클로저의 내부함수에 영향을 미치는 주
클로저는 캡쳐한다 -> 래퍼런스 타입을 캡쳐할때는 strong으로 캡쳐한다 -> reference count 증가 -> cat 인스턴스를 할당할 때 이미 count가 올라간 상황 -> cat1 = nil 해도 deinit 되지않는다 -> 메모리에서 해지 되지않음(강한
전에 closure에서 공부하다가 아래 코드를 보았었다.함수내부에서 클로저를 만들었는데, 그 클로저 내부의 변수들이 기억된다는 결론이었는데 즉 캡쳐였다. 그것은 클로저 외부의 값들을 기억한다는 것이다. 이에 함수내부에 있는 클로저말고 외부에서 클로저를 만들어보았다.결과
클로저는 아직 공부가 부족한가보다. 할 수록 깨닫는게 생긴다. 틀린게 있을 수 있습니다 가볍게 봐주세요!(95번째줄~107번째줄만 참고.)makeClassReference 함수내에서 클로저의 외부에서 인스턴스를 선언하고 클로저 내에서 인스턴스를 참조했다. 함수를 선언해
시간이 걸리는 task 이후에 어떤 일처리를 해야할 때가 있다. 예를들어 데이터를 불러온 후에 화면에 뿌릴때.클로저는 특정 함수의 argument로 들어가서 그 함수를 벗어났을 때(escaping) 사용할 수 있다.즉 scope의 개념이 무시된다. 지역변수 바깥에서 사
클래스 내에서 저장프로퍼티에 할당된 클로저가 있고 self 를 참조할경우 reference counter가 하나 더 증가하므로 controller에서 dismiss하더라도 class 가 deinit되지 않는다. 따라서 다음과 같이 약한 참조를 이용하여 dismiss될