목록2025/02 (16)
大器晩成
[대문자 self]Self 타입은 특정 타입이 아니라 해당 타입의 이름을 반복하거나 알지 않아도 현재 타입을 편리하게 참조할 수 있습니다.프로토콜 선언 또는 프로토콜 멤버 선언에서 Self 타입은 프로토콜을 준수하는 최종 타입을 나타냅니다.구조체 클래스 또는 열거형에서 Self 타입은 선언에 의해 도입된 타입을 참조합니다. 타입의 멤버에 대한 선언 내에서 Self 타입은 해당 타입을 참조합니다. 1. 타입을 선언하는 위치에서 사용합니다2. 타입속성/타입메서드를 지칭하는 자리에서 대신 사용이 가능합니다.extension Int { //타입을 선언하는 위치에서 사용가능 static let zero: Self = 0 // Self는 Int 타입 //static let zero: Int ..
[소문자 self]self 표현식은 현재 타입 또는 해당 타입의 인스턴스에 대한 명시적 참조입니다.초기화 구문, 서브스크립트, 또는 인스턴스 메서드에서 self는 현재 인스턴스를 참조합니다. 타입메서드에서 self는 현재 타입을 참조합니다.self 표현식은 멤버에 접근할 때 범위를 지정하는 데 사용되고 함수 파라미터와 같이 범위에 같은 이름의 다른 명수가 있을 때, 명확성을 제공합니다.1. 인스턴스를 가리키기 위해 사용class SomeClass { var greeting: String init(greeting: String) { self.greeting = greeting }}self.greeting은 현재 타입의 인스턴스인 greeting을 가리킵니다.self를 붙이지 않..
열거형은 특정 클래스 도는 구조체의 기능을 지원하기 위해 생성됩니다. 유사하게 더 복잡한 타입의 컨텍스트 내에서 허용하기 위해 구조체와 일반적으로 특정 타입과 함께 사용되는 프로토콜을 정의하는 것이 편리할 수 있습니다. 스위프트는 중첩된 타입을 정의할 수 있으며, 타입의 정의 내에서 열거형, 구조체, 그리고 프로토콜과 같은 타입을 중첩할 수 있습니다.class Week { struct DayOfTheWeek { enum Day { case monday case tuesday case wednesday case thursday case friday ..

UIKit에서 UILabel을 사용할 경우 패딩 속성이 없어 View를 만들고 View안에 Label을 넣어서 관리하는 경우가 종종 있습니다.불편함 때문에 찾다 보니 UILabel에도 패딩이 적용할 수 있어 간단하게 작성해보려고 합니다. 첫 번째 레이블과 두 번째 레이블은 패딩이 적용되었으며, 세 번째 레이블은 적용되지 않은 상태입니다. 커스텀하게 사용하기 위해서 Apple에서 제공하는 drawText 메서드를 통해, 기본 Padding을 지정해 줄 수 있습니다.final class PaddingLabel: UILabel { private let padding = UIEdgeInsets(top: 16.0, left: 16.0, bottom: 16.0, right: 16.0) ..