본문 바로가기
반응형

프로그래밍/Swift51

Swift 클로저, 다시 한번 정리 클로저를 얼마나 다양하게 표현할 수 있는지 보자 클로저는 매개변수와 반환 값의 타입을 문맥을 통해 유추할 수 있기 때문에 매개변수와 반환 값의 타입을 생략할 수 있다. 클로저에 단 한 줄의 표현만 들어있다면 암시적으로 이를 반환 값으로 취급한다. 축약된 전달인자 이름을 사용할 수 있다. 후행 클로저 문법을 사용할 수 있다. 스위프트의 클로저는 C언어나 Objective-C의 브록(block) 또는 다른 프로그래밍 언어의 람다(lambda)와 유사, 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말하며 함수와 비슷하며 함수 역시 클로저의 한 형태. 클로저의 세 가지 형태. 이름이 있으면서 어떤 값도 획득하지 않는 전역함수의 형태 이름이 있으면서 다른 함수 내부의 값을 획득할 수 있는 중첩.. 2020. 11. 12.
@objc Swift로 된? 진행했던 예전의 소스를 훑어보면서 눈에 띄면서 완전히 이해가 되지 않는 부분들을 파고 파고 파고 파고 들어가보기로 했는데 그중 무심하게 사용했던 @objc에 대해서 한번 찾아보니 많은 내용은 각설하고 내가 이해하고 싶은 것만 정리를 하자면 다음과 같다. @objc의 역할은 Objective-C측에서 Swift코드의 심볼을 파악 할 수 있게 해주는 용도. 즉, Swift프로젝트에서 Objective-C모듈을 병행 사용한다면, 반대로 Objective-C 프로젝트에서 Swift모듈을 병행사용할 경우 해당 메서드가 Objective-C 심볼 코드라는 것을 명시하기 위해 사용한다고 한다. 그런데 이럴 경우 바이너리의 용량이 커지는 단점이 있으니 최근에는 @objc보다는 @objcMembers라.. 2020. 11. 12.
Swift의 where절 SQL에 익숙한 사람들은 where절을 아마도 그렇게? 생각할 것이다. 그래서 선입관이나 고정관념은 무서운 것이다. 항상 조심하고 경계하자. 책에 의하면 Swift으 where절은 특정 패턴과 결합하여 조건을 추가하는 역할을 한다고 되어 있다. 어떤 조건을 더 추가하고 싶을 때나 특정 타입에 제한을 두고 싶을 때 다양한 용도로 사용할 수 있다. 주 용도는 다음과 같다. 패턴과 결합하여 조건 추가 타입에 대한 제약 추가 if let index = navigationController?.viewControllers.index(where: { $0.isKind(of: ListViewController.self) }) { self.navigationController?.viewControllers.insert(.. 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.
iOS14, UIPageControl의 변화 그리고 삽질. 지난 7월쯤 UIPageControl을 상속 받는 CustomPageControl이라는 클래스를 만들어 커스터마이징 하는 포스팅을 올린 적이 있다. 그 당시 포스팅을 보면 잘못된 점들이 있긴한데, 어찌되었던 결국 @available(iOS14, *)를 체크해서 사용해야하는 상황이 발생되었고 내가 원하는 UI는 도저히 만들수가 없어서 iOS14이전의 UIPageControl과 흡사(?)하게 만들게 되었다. iOS14에서 UIPageControl의 경우, Custom Indicator Image를 설정할 수 있으며, 특정 페이지에는 특정 이미지를 넣을 수 도 있다. background sytyle도 지정가능하고 다양한 프로퍼티와 메서드가 추가되었다. 자세한 내용은 SDK를 참고. 별다른 기능이 있는 것이 아.. 2020. 10. 20.
Swift REPL 사용방법 오늘 갑자기 든 생각이다. 어떤 언어든지 차근차근 하나씩 꼼꼼하게 읽어 나가면서 이해한다면 그 재미도 쏠쏠할 것 같다. 앞으로 어떻게 써 먹을지는 모르겠지만 그 대상이 되는 언어는 Swift 언어가 되었다. 벌써 버전이 5.0 넘어버린 Swift. 버전을 따라 가는 것도 버거운 일이다. 스위프트 컴파일러는 Read-Eval-Print-Loop, 혹은 줄여서 REPL이라고 부르는 커맨드라인 인터페이스에서 제공되는 것이며, 인터프리터 언언와 비슷하게 명령어를 입력하면, 컴파일러는 즉시 코드를 실행하고 결과를 도출한다. 맥의 운영체제는 맥OS 시에라(Sierra) 또는 OS X엘캐피탄(El Capitan)부터 xcrun swift를 입력하면 REPL 인터페이스를 사용할 수 있다. 책의 내용을 따라해 본 화면을.. 2019. 8. 21.
반응형