반응형 iOS, Swift/Swift6 Swift enum 총정리 오늘은 swift의 enum의 기본적인 정의 방법부터,switch와 함께 다루는 방법들까지,다양한 예제와 함께 정리하겠습니다.1. enum 의 정의와 기본 사용방법enum은 관련된 값들의 그룹을 정의하게 해주는데요.아래와 같이 정의해서 사용합니다. enum Direction { case north case south case east case west} 이는 좀 더 간략하게 한줄로 정의할 수도 있습니다. enum Direction { case north, south, east, west } 이 값에 접근할 때는,아래와 같이 해 줍니다. let currentDirection = Direction.north swift의 다른 속성들에 접근할 때처럼,타입이 명확할 때는 아래와 같이 축약도.. 2025. 3. 31. Swift Parameter Label(매개변수 라벨) as 사용방법 정리 오늘은 Swift Parameter Label(매개변수 라벨)의 사용방법에 대해 정리해 보겠습니다. 1. Swift Parameter Label(매개변수 라벨) asSwift에서 Parameter Label(매개변수 라벨) as는,함수를 호출할 때,각 인자가 어떤 목적으로 사용되는지 알려주어,코드의 가독성을 높여줍니다. as는 "~로써", "~로"라는 의미를 가지고 있는데요.타입자체를 인자로 받는 함수에서,해당 타입이 어떻게 사용될 것인지를 표현할 때 유용합니다. 코드를 보면서 이해해 볼까요? 아래 함수는 T타입을 받아, U타입으로 변환해주는 함수입니다.여기서 as는 특별한 기능을 하는 것은 아니고,하나의 라벨로써,convert함수호출시 어떤 타입으로(또는 타입으로써) 함수에서 사용될지,문장처럼 편하게.. 2025. 3. 15. Swift Closure의 강한 캡처와 [weak self]의 필요성 오늘은 Swift Closure의 강한 캡처와 [weak self]의 필요성에 대해 알아보겠습니다. 1. Closure의 강한 캡처클로저는 외부 변수를 "캡처"하여 내부에서 사용할 수 있는데요.참조하는 객체를 강하게(strong) 캡처합니다.이로 인해 다음과 같은 문제가 발생할 수 있는데요.강한 참조 순환(메모리 누수): 만약 클래스의 프로퍼티가 클로저를 가지고 있고, 그 클로저가 self를 캡처한다면, 클래스 인스턴스와 클로저가 서로를 강하게 참조하게 되어 메모리에서 해제되지 않아,메모리 누수 발생가능의도치 않은 동작: 객체가 이미 소멸되었어야 하는데 클로저에 의해 계속 살아있으면, 예상치 못한 동작이 발생할 수 있습니다. 2. [weak self]의 필요성이럴 때 필요한 것이, [weak self]인.. 2025. 3. 14. Swift inout parameter(파라미터) 함수 마스터하기 오늘은 Swift의 inout parameter(파라미터)를 사용하는 함수에 대해 정리하고 마스터해 보겠습니다. 1. inout 파라미터1-1. inout 파라미터원래 Swift에서 함수나 메서드에 전달되는 파라미터는,상수(constants)로 취급되어 함수 내에서 수정할 수 없습니다.하지만 파라미터를 아래와 같이 inout 키워드와 함께 표시하면,원래 상수라면 안 되는 다음의 일들이 가능해집니다.함수 내에서 파라미터를 수정 가능함수가 호출될 때 값을 전달받아 함수 내부에서 수정한 후, 수정된 값을 다시 원래 변수에 반영func makeDouble(number: inout Int) { number *= 2} 위 함수는 아래와 같이 사용해 주어야 합니다.주의할 점은, inout 파라미터를 전달할 때.. 2025. 3. 13. Swift guard let 이용한 Optional unwrapping 방법 오늘은 swift에서 guard let 이용한 Optional unwrapping 방법을 알아보겠습니다. 1. guard let1-1. guard letguard let은 옵셔널 값이 nil이 아닌지 확인하고, nil이 아니라면 옵셔널을 언래핑하는 방법입니다. if let과 달리, guard let은 언래핑된 값을 함수나 블록의 나머지 부분에서 사용할 수 있게 해줍니다. guard let 사용시,nil일 경우에 대한 else 블록을 반드시 구현해야 하고요.이 블록안에서,return, break, continue, throw 등으로,현재 스코프를 벗어나는 코드도 같이 작성해 주어야 합니다. guard let unwrappedValue = optionalValue else { // optionalVa.. 2025. 3. 12. Swift 불투명 타입 some은 왜 필요할까? SwiftUI를 접하다 보면,Opaque Type(불투명 타입)인 some과 만나게 됩니다.대체 이건 뭐고 왜 필요한 것일까요?실마리를 찾기 위해,Opaque Type(불투명 타입)과 SwiftUI에 대해 알아보겠습니다. 1. Opaque Type(불투명 타입) 과 SwiftUI불투명 타입이 어떤 건지 비유를 통해 알아보겠습니다. 만약 친구에게 "나 과일 하나 가져올게" 라고 말했다고 가정해 보겠습니다.어떤 과일을 가져올지 정확히 말하지 않았지만,분명한 것은 과일의 일종을 가져온다는 점입니다. "뭐가 될지는 모르겠지만,마트에 들려서,과일종류를 사올것이다" 이런 거죠. SwiftUI에서도 마찬가지입니다.some을 사용하면 다음의 의미를 가지게 됩니다."이것은 View의 일종인데,Text일 수도, But.. 2025. 3. 8. 이전 1 다음