2월, 2015의 게시물 표시

Swift에서 Enum을 다른 값으로 치환하여 사용하기

Swift에서 Enum을 다른 값으로 치환하여 사용하기 아래는 Int를 대상으로 예시한 것이다. enum MyEnum {   case One   case Two   case Three   case Four } 이와 같이 선언하고, 아래처럼 사용하면 오류가 발생한다. (주의! Xcode 6.0과 Xcode 6.1은 사용 방법이 서로 다르다.) var error_case1_enum = MyEnum(2) => 오류: Cannot convert the expression's type '$T7??' to type '()' var error_case2_enum = MyEnum(rawValue: 2) => Xcode 6.1의 사용법으로 대응한 경우. 오류: Extra argument 'rawValue' in call var error_case2_enum = MyEnum.fromRaw(2) => Xcode 6.0의 사용법으로 대응한 경우. 오류: Static method 'fromRaw' has been replace with a failable initializer 'init(rawValue:')' <= 이 경우는 Xcode 6.1인 경우에 출력하는 오류 위 오류에 대한 수정를 아래와 같이 차근차근 해보자. 첫번째 이유는, MyEnum( 2 ) 의 인자에 대한 초기화 대응 함수가 생성되지 않아 type error가 발생할 수 밖에 없기 때문이다. 우선 초기값이 필요하다면 초기값을 넣어준다.(반드시 필요한 행위는 아니다. 필요에 따라서) enum MyEnum {   case One   case Two   case Three   case Four   init() {     self = .One   } } <실제 여기서 부터 시작하면 된다.>