강의

멘토링

커뮤니티

Inflearn Community Q&A

rnfhqhdcjs1236105's profile image
rnfhqhdcjs1236105

asked

Becoming a Successful Real iOS Developer [From Basics to Practice]

Location, pin

Location.pin강의에서 self질문이요

Written on

·

250

1

안녕하세요 강의내용중에 질문있어서 글올립니다.

PinLandMark라는 열거형에서

    var title: String {

        return "\(self)" // self는 case를 가르킴

    }
이부분에 해당하는 self가 열거형의 case를 나타낸다고 이해했는데 왜 그렇게 되나요?

밑의코드인

    var coordinate:CLLocationCoordinate2D {

        switch self {

        case .Deoksugung:

            return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>)

        case .Hyeongbokgung:

            return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>)

        case .SeoulCityHall:

            return .init(latitude: <#T##CLLocationDegrees#>, longitude: <#T##CLLocationDegrees#>)

        }

    }
의경우 switch self가 PinLandmark를 가르키지않나요?

제가 이해한건 self라는건 class,struct,열거형의 인스턴스를 가르킨다고알고있는데 제가 잘못이해한건가요?

iosswift동시성

Answer 1

1

enilv0529님의 프로필 이미지
enilv0529
Instructor

안녕하세요

 

self라는 키워드가 class, struct, enum에서 인스턴스를 나타낸다는 포괄적인 개념은 같다고 봐도 되지만

어떤 타입이냐에 따라 self가 가진 기능적 특징이 모두 다릅니다.

 

간단히 분류하면

class에서의 self는 참조 된 것 이고

struct에스의 self는 복사 된 것 입니다.

enum에서의 self는 특정한 case가 선택된 것 입니다.

 

enum에서 case가 선택되지 않은 인스턴스는 만들어질 수 없습니다.

그러니 enum에서 self는 특정한 case를 무조건 선택한 것을 나타내게 됩니다.

 

rnfhqhdcjs1236105's profile image
rnfhqhdcjs1236105

asked

Ask a question