반응형 swift43 @escaping 뭔지도 모르고 엄청 썼군... ㅋㅋ 함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 때 클로저가 함수를 탈출(Escape)한다고 표현. 클로저를 매개변수로 갖는 함수를 선언할 때 매개변수 이름의 콜론(:) 뒤에 @escaping키워드를 사용하여 클로저가 탈출하는 것을 허용한다고 명시. //@escaping 예시 func requestSchoolGroupList(code: String, completionHandler:@escaping Result) { 비동기 작업을 실행하는 함수들은 클로저를 컴플리션 핸들러(Completion handler)전달인자로 받는데 비동기 작업으로 함수가 종료되고 난 후 호출할 필요가 있는 클로저를 사용해야 할 때 탈출 클로저(Escaping Closure)가 필요하다.. 2020. 11. 12. @objc Swift로 된? 진행했던 예전의 소스를 훑어보면서 눈에 띄면서 완전히 이해가 되지 않는 부분들을 파고 파고 파고 파고 들어가보기로 했는데 그중 무심하게 사용했던 @objc에 대해서 한번 찾아보니 많은 내용은 각설하고 내가 이해하고 싶은 것만 정리를 하자면 다음과 같다. @objc의 역할은 Objective-C측에서 Swift코드의 심볼을 파악 할 수 있게 해주는 용도. 즉, Swift프로젝트에서 Objective-C모듈을 병행 사용한다면, 반대로 Objective-C 프로젝트에서 Swift모듈을 병행사용할 경우 해당 메서드가 Objective-C 심볼 코드라는 것을 명시하기 위해 사용한다고 한다. 그런데 이럴 경우 바이너리의 용량이 커지는 단점이 있으니 최근에는 @objc보다는 @objcMembers라.. 2020. 11. 12. Swift ForEach 사용 예 별 내용이 있는건 아니지만, 시간 날 때마다 한번씩 훑어 보면서 머리속에 인식시키는 가장 좋은 방법(나에게만) 정리하면서 포스팅 하기, 그런데 살짝 고민스러운게 내용이 너무 부실한데... forEach, navigationController의 viewControllers 수 만큼 순환하면서 목적하는 바를 기술한다. @IBAction func onShowList() { navigationController?.viewControllers.forEach { if $0.isKind(of: ConsentLetterListViewController.self) { navigationController?.popToViewController($0, animated: true) return } } } 2020. 11. 12. iOS UIPageControl Customizing of Objective-C 의도하지 않은 기능들에 대해 학습하고 구현하고 하는 일들이 간헐적으로 나타난다. 이것은 주로 원하지 않았던 일을 하게 되는 현상인데 결과를 두고 보면 의외로 괜찮은 현상들 같다. 요즘은 Objective-C 로 구현되는 소스들이 많지는 않지만 Swift로 만들어진 리소스를 보면서 Objective-C로 옮기는 작업들을 하는 것도 이제 제법 익숙해졌다. 하지만 곧 Swift로 넘어가긴 해야할 것 같다. UIPageControl은 비교적 간단하고 손쉽게 페이징을 표시해주는 iOS의 컴포넌트이다. 이 역시 내부적인 구조는 UIView로 만들어진 View객체에 Control기능을 포함하는데 점으로 표시되는 모양이 마음에 들지 않는다고 하여 아래 그림과 같이 디자인을 살짝 변경한 UI를 요청받게 되었다. 안드로이.. 2020. 7. 29. Swift REPL 사용방법 오늘 갑자기 든 생각이다. 어떤 언어든지 차근차근 하나씩 꼼꼼하게 읽어 나가면서 이해한다면 그 재미도 쏠쏠할 것 같다. 앞으로 어떻게 써 먹을지는 모르겠지만 그 대상이 되는 언어는 Swift 언어가 되었다. 벌써 버전이 5.0 넘어버린 Swift. 버전을 따라 가는 것도 버거운 일이다. 스위프트 컴파일러는 Read-Eval-Print-Loop, 혹은 줄여서 REPL이라고 부르는 커맨드라인 인터페이스에서 제공되는 것이며, 인터프리터 언언와 비슷하게 명령어를 입력하면, 컴파일러는 즉시 코드를 실행하고 결과를 도출한다. 맥의 운영체제는 맥OS 시에라(Sierra) 또는 OS X엘캐피탄(El Capitan)부터 xcrun swift를 입력하면 REPL 인터페이스를 사용할 수 있다. 책의 내용을 따라해 본 화면을.. 2019. 8. 21. 16. 구조체와 클래스 구조체와 클래스 구조체와 클래스에는 내용이 상당히 많은 편인데, 간략하게 정리하고 넘어간다. 이 파트를 재 학습을 한 이유는 실무에서 접한 코드에서 구조체가 다양하게 많이 쓰여지고 있었고 물론 클래스가 더 많지만, 구조체의 적절한 사용 방안에 대한 생각을 정립해보기 위해서다. 구조체와 클래스의 가장 큰 차이는 값과 참조의 차이다. 이 개념은 값을 전달하느냐 참조를 전달하느냐에 차인데 참조란 C 의 포인터 같은 개념으로 어느정도 프로그래밍에 대한 사전 지식이 있다면 무난하게 이해할 수 있는 부분이다. 구조체늬 인스턴스는 값 타입고, 클래스의 인스턴스는 참조 타입이라는 것이다. 1.구조체 구조체는 struct 키워드로 정의한다. (대문자 카멜케이스를 사용) struct Person {var name: Str.. 2019. 2. 23. 이전 1 2 3 4 5 6 ··· 8 다음 반응형