iOS/Swift
[Swift Language Guide] String & Character
[Swift Language Guide] String & Character
2022.09.19String은 Character의 연속이다. String의 내용은 Character의 컬렉션을 비롯해 다양하게 접근이 가능하다. Swift의 String과 Character는 빠르고, Unicode에 순응하는 방식을 제공한다. 💡 String 타입은 Foundation 프레임워크의 NSString과 브릿지 되어있다. Foundation이 NSString에 정의된 메소드를 String타입에도 확장해 놓았기 때문에, Foundation을 import한다면 NSString으로 캐스팅 하지 않아도 해당 메소드들을 사용할 수 있다. / 참고: Bridging Between String and NSString String Literals 따옴표 사용 let someString = "Some string litera..
[Swift] COW(Copy-on-Write)
[Swift] COW(Copy-on-Write)
2022.08.24들어가며 Swift에서 값 타입과 참조 타입의 주요한 차이 중 하나는, 값 타입은 새로운 변수를 할당하거나 파라미터로 전달될 때 값 복사가 일어난다는 점이다. 다만, 이러한 복사 작업은 상당한 시간이 걸리므로 이런 작업을 최적화 하기 위한 기술이 바로 COW(Copy-on-Write)이다. "쓸 때 복사한다."라는 의미인데 COW가 어떤 방식으로 동작하는지, 또 Swift에서 어떤 타입에 구현되어있는지를 살펴본다. 실험 실험준비 아래와 같이 메모리 주소를 출력하는 함수를 정의하고 실험을 진행한다. UnsafeRawPointer는 Swift가 지원하는 포인터 타입 중 하나인데, 나중에 포스트를 통해 자세히 설명할 예정이다. 일단 객체의 메모리 주소를 나타내는 타입이라고 이해하자. func printAddr..
[Swift] High-Order Function (고차함수)
[Swift] High-Order Function (고차함수)
2021.11.14고차함수 고차함수는 클로져와 같이 쓰인다. forEach(_:) 기본적으로 for - in 루프와 같은 동작을 한다. break, continue 같은 플로우 컨트롤은 할 수 없음. 모든 요소를 순회한다. 클로저 내부에 return 키워드를 쓰더라도 해당 클로저만 종료 될 뿐 순회가 종료되지 않는다. 뒤에 붙는 클로저 구문을 각 요소를 탐색할때마다 call한다. 아래와 같이 두번 중첩해서 쓰는 것도 가능함. stackView.arrangedSubviews.forEach { smallStackView in let stackView = smallStackView as? UIStackView stackView?.arrangedSubviews.forEach { view in let label = view as?..