스위프트 .... 깊고도 깊은 .... 언어의 세계 Swift 공식 문서에 function리스트가 있길래 정리해보자 // https://swiftdoc.org/ 1. abs absolute value 절대 값 ! -100 을 100으로 2. assert - assert(, ) 위에서 사용한 x,y 변수를 사용했다. x = -100, y = 100 인 상태에서 assert( x == -100, "x가 -100이 아니다!")라고 작성한다. x == -100 이라는 조건에 만족하기 때문에 그냥 넘어간다. x를 100으로 변경하고 assert( x == -100, "x가 -100이 아니다!")를 실행한다. 그러면 Assertion failed메시지 x가 -100이 아니다 ! 가 뜬다. x == -100 이라는 ..
애니메이션 옵션들 중 자주 사용하는 것들curveLinearcurveEaseIncurveEaseOutcurveEaseInOut // https://developer.apple.com/documentation/uikit/uiview/animationoptions에 살펴보면 더 많은 옵션들이 나와 있습니다. curveLinear 애니메이션 커브는 애니메이션이 지속되는 동안 균등하게 애니메이션을 발생시킵니다. curveEaseIn 애니메이션이 느리게 시작된 다음 애니메이션 진행 속도가 점점 빨라집니다. curveEaseOut 애니메이션이 빠르게 시작되고 완료되면 느려집니다. curveEastInOut 애니메이션을 느리게 시작하고 빠르게 가속화 한 다음 애니메이션이 완료되기 전에 느리게 합니다. 속도 그래프
사용할 CGAffineTransform는 구조체입니다. (https://developer.apple.com/documentation/coregraphics/cgaffinetransform) 가장 큰 특징은 뷰의 프레임을 계산하지 않고 CGAffineTransform을 사용해 2D 그래픽을 그릴 수 있습니다. 간단하게 사용 가능하기 때문에 자주 사용하곤 합니다. CGAffineTransform에서 사용되는 아핀 변환 행렬은 2D 그래픽을 그리는데 사용되는 행렬입니다. 또한 아핀 변환 행렬은 객체를 회전, 크기 조절, 변환 또는 기울기를 위해 사용됩니다. 아핀 변환을 직접 생성할 필요는 없고 구조체에 있는 함수를 호출해 뷰를 이동(translate), 조절(scale), 회전(rotate)합니다. Scale..
스위프트4.2 버전에서 나왔던 removeAll이랑 기존에 있던 filter는 비슷한 역할을 합니다. removeAll(where: ) method that performs a high-performance, in-place filter for collections.You give it closure condition to run, and it will strip out all objects that match the condition. 즉 removeAll(where: ) 메서드는 컬렉션에 대해서 고성능인 in-place filter를 수행합니다. 클로저에 필요한 조건을 주고 조건에 일치하는 모든 객체들을 제거할 것입니다. 여기서 in-place는 그 자리에서라는 의미로 removeAll을 하게 되면 ..
알고리즘 문제를 풀다가 String 과 Int를 결합할 일이 생겨서 zip을 사용해서 문제를 풀었습니다. 항상 같은 사이즈를 가지고 zip 했었는데 사이즈가 다른 것을 zip하면 어떻게 되는지 궁금했습니다. 스위프트 공식 문서를 보면 zip은 Creates a sequence of pairs built out of two underlying sequences. 두 개의 시퀀스로 구성된 것을 가지고 시퀀스쌍을 만듭니다. 라고 정의 내려져 있습니다. func zip(_ sequence1: Sequence1, _ sequence2: Sequence2) -> Zip2Sequence where Sequence1 : Sequence, Sequence2 : Sequence 먼저 두 개의 파라미터가 필요합니다. seq..
스위프트의 함수는 오버라이드와 오버로드를 모두 지원합니다. 먼저 오버로딩이란- 같은 이름의 함수를 여러 개 정의하고 매개변수를 다르게 해 다양한 유형에 호출에 응답 가능하게 합니다.오버라이딩이란- 상속 관계에 있는 클래스의 이미 정의된 메소드를 재정의 해 특정한 형태로 구현 가능합니다. 스위프트에서 매개변수의 타입이 다르면 같은 이름의 함수를 여러개 만들 수 있습니다. 또한 같은 이름의 함수여도 매개변수의 개수가 달라도 함수를 만들 수 있습니다. 위와 같은 방법은 매개변수 이름 (ex: naming , age) 지정해 함수를 선언했습니다. + 스위프트에서는 매개변수 이름과 더불어 전달인자 레이블을 지정해줄 수 있습니다. 보통의 경우는 위와 같이 매개변수의 이름을 전달인자 레이블과 같은 이름으로 사용합니다..
- Total
- Today
- Yesterday
- swiftUI
- 책 추천
- stanford SwiftUI
- RX
- Algorithm
- wwdc
- Xcode
- 알고리즘
- SWIFT
- 딥러닝
- 책
- ios
- 스위프트
- Animation
- 책 후기
- 독서
- 애니메이션
- Deep learning
- 머신러닝
- rxswift
- ARC
- leetcode
- ReactiveX
- objc
- 스위프트UI
- iOS SwiftUI
- 문자열
- string
- objective-c
- swift5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |