목록Swift (35)
Jupyo's Daily Story
접근 제어(Access Control)는 코드 내에서 특정 클래스, 구조체, 열거형, 프로퍼티, 메서드 등의 접근 범위를 정의하는 기능입니다.이를 통해 외부에서 해당 코드에 접근할 수 있는 범위를 제한할 수 있어 코드의 안정성과 보안을 강화할 수 있습니다. Swift에서는 총 5가지 접근 수준을 제공하며, 이를 이용해 접근 범위를 제어할 수 있습니다. 1. open정의: 외부 모듈에서 접근이 가능하며, 해당 클래스나 멤버는 서브클래싱 및 오버라이딩이 가능합니다.주요 사용처: 프레임워크나 라이브러리에서 외부에서 상속받거나 수정할 수 있도록 허용하고자 할 때특징: open으로 정의된 클래스는 외부 모듈에서도 서브클래싱이 가능하며, 메서드는 오버라이딩할 수 있습니다.open class Animal { o..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cQinwH/btrRXezPdZF/KkK4gGRvnmuxJ8k1xIKFY1/img.png)
Swift에서 final 키워드는 클래스, 메서드, 프로퍼티 또는 서브스크립트에 사용되며, 상속과 오버라이딩을 방지하는 역할을 합니다.이 키워드를 사용하면 특정 기능을 더 이상 변경되지 않도록 보호할 수 있습니다. final의 사용1. 클래스에 적용클래스에 final을 사용하면 해당 클래스를 상속받아 서브클래스를 만들 수 없습니다.final class Animal { var name: String init(name: String) { self.name = name }}// 이 경우 서브클래싱이 불가능함// class Dog: Animal {} // 오류 발생 2. 메서드에 적용클래스의 특정 메서드에 final을 사용하면 서브클래스에서 해당 메서드를 오버라이드할 수 없습니다...
변수나 리터럴, 표현식 등의 조합으로 새로운 문자열을 구성하는 것을 String Interpolation 이라고 합니다. Swift에서는 \(변수) 와 같은 방식의 새로운 방법이 도입되었지만, 포맷 지정자도 여전히 사용하기 때문에 알고 있으면 도움이 됩니다. %@ 객체 %% % 문자 %d, %D 정수 %u, %U 부호 없는(Unsigned) 정수 %x, %X 부호 없는(Unsigned) 정수를 16진수로 출력 %o, %O 부호 없는(Unsigned) 정수를 8진수로 출력 %f 8바이트 실수 %c 1바이트 아스키 문자 %C 유니코드 문자 %s C 문자열
회원가입 시 이메일을 입력하는 곳에서 정확한 값을 입력하였는지 확인할 때 사용하면 된다. let emailPattern = "([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\\.[0-9a-zA-Z_-]+){1,2}" let emailAddress = user@example.com if let result = emailAddress.range(of: emailPattern, options: [.regularExpression]) { print("valid email") } else { print("invalid email") }
※ 이 글은 아래 내용을 번역 및 참고한 글입니다. 오역 및 수정이 필요한 부분은 지적 부탁드립니다. Swift: @dynamicCallable Made Simple Learn how to create Dynamic Callable types in Swift with simple examples. medium.com Dynamic Callables in Swift @dynamicCallable 은 Swift 5.0 이상에서 사용되는 유형을 직접 호출하는 새로운 방법입니다. Dynamic Callable 사용을 보기 전에 간단한 예문을 먼저 보도록 하겠습니다. struct Greeter { func greet(name: String) { print("Hi, \(name)") } } let greeter =..
곧 Swift 5.4 버전이 나올 예정입니다. 어떤 내용이 있는지 알아보도록 하겠습니다. 이 글은 Hacking With Swift 의 글을 번역 및 정리한 내용입니다. 오역 및 부족한 부분이 있을 수 있으므로, 자세한 내용은 아래 링크를 참조해 주세요. Hacking With Swift - What's new in Swift 5.4? What’s new in Swift 5.4? Multiple variadic parameters, improved implicit member syntax, result builders, and more! www.hackingwithswift.com Swift 5.4 swift 5.4는 오류가 있는 expressions(표현식)에서 더 나은 코드 완성과 incrementa..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FIZIz/btqOxrJJdm1/maQkZsjx5SBOtkrrOjIpnK/img.jpg)
웹앱에서 그림 및 텍스트 무단 복사 또는 불필요한 팝업 메뉴를 방지하는 방법은 아래와 같다. 블록 및 복사하기 방지 webView.evaluateJavaScript("document.documentElement.style.webkitUserSelect='none'") 팝업 메뉴 방지 webView.evaluateJavaScript("document.documentElement.style.webkitTouchCallout='none'")
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c50MQi/btqOvRuT9Q0/29Wr7aXxjUkImv6sszKKdk/img.png)
지난 2주동안 스위프트 포럼에서 가장 뜨거웠던 주제가 바로 스퓌이프트 동시성 로드맵이었습니다. https://forums.swift.org/t/swift-concurrency-roadmap/41611 Swift Concurrency Roadmap A PR with this document can be found here Swift Concurrency Roadmap Our goal is to make concurrent programming in Swift convenient, efficient, and safe. This document outlines a number of proposed additions and changes to the language to achieve this, thro for..
반복문을 사용하다보면 그 안에서 조건문을 사용하는 경우가 종종 발생한다. 예를 들면 아래와 같다. for item in items { if item.title == favoriteTitle { favorites.append(item) } } 물론 위와 같은 방법이 잘 못 된 것은 아니다. 단지, 아래와 같은 방법도 있다는 것을 알고 있는 것만으로도 큰 도움이 될 것이다. where for item in items where item.title == favoriteTitle { favorites.append(item) } filter for item in (items.filter { $0.title == favoriteTitle }) { favorites.append(item) } for case item..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cvjExe/btqLpTIzw0o/fWHdMIeSrB4Cksga9igxMK/img.jpg)
PictureInPicture Picture In Picture 은 유튜브 프리미엄 사용자 또는 아이패드 사용자라면 익숙할 수 있다. 아래의 이미지와 같이 홈 화면에서도 영상이 재생 되는 화면이 표시 되는 것이다. 이 기능은 iOS 14 버전에서 추가 되었으며, 한 동안 유튜브 프리미엄 결제 없이 Picture in Picture 을 사용할 수 있다고 해서 사용법들이 올라왔었으나 이미 막아놓은 듯 하다. PictureInPicutre 기능은 영상이 재생 될 때 홈으로 빠져나오거나 영상에서 PictureInPicture 사용 버튼을 누르면 사용할 수 있다. "어? 나는 영상을 보다가 홈으로 나와도 안 되던데?" 하는 경우는 아래와 같다. 설정 > 일반 > 화면 속 화면 > 화면 속 화면 자동 시작을 ON으..