xcode7.x Swift 에 대해서 질문이 있습니다.(Struct와 Array를 이용중 오류)


안녕하세요 swift를 이용해 어플을 만들고있는 학생입니다. 바로 질문 드리겠습니다.

현재 상황은 한 테이블 뷰에서 구조체 선언후 일부 초기값을 준 후 초기값을 준 구조체를 다시한번 모아서 배열로 만들려고 하는 상황입니다. play ground에서는 문제가 없는데 project에 쓰기만 하면 밑에 나온 사진처럼 오류가 발생합니다. 인터넷에서 찾아보니 override func 내부에 작성을 하면 괜찮은거 같기는 한데... 저는 이 배열을 전역변수로써 사용하고 싶습니다. 방법이 없을까요??

  • 2016년 07월 18일에 작성됨

조회수 131


1 답변


좋아요
3
싫어요
채택취소하기

viewDidLoad() 메소드 안에서 값을 초기화 해주면 될거 같습니다.

struct Zone {
        var name : String
        var controller : [controllerType]

        enum controllerType {
            case LG_TV
            var typeTitle : String {
                get {
                    let titleString : String
                    switch self {
                    case .LG_TV:
                        titleString = "LG TV"

                    }
                    return titleString
                }
            }
        }
    }

    var Room1 = Zone(name : "ROOM1", controller : [.LG_TV, .LG_TV, .LG_TV])
    var Room2 = Zone(name : "ROOM2", controller : [])
    var Room3 = Zone(name : "ROOM3", controller : [])

    var Zones : [Zone] = [] 

    override func viewDidLoad() {
        super.viewDidLoad()

        Zones = [Room1, Room2, Room3]

        print(Zones)  
        //또는 
        Zones.append(Room1)
        Zones.append(Room2)
        Zones.append(Room3)

        print(Zones)
    }

제가 질문을 잘 못 이해하거나 틀린점이 있다면 편집요청 또는 댓글을 남겨주세요 :)

++++++++++++추가++++++++++++ 이미지

  • 2016년 07월 19일에 작성됨
    Swift로 iOS 개발을 하고 있습니다

  • 너무너무 잘 됩니다!! viewDidLoad() 라는 함수 자체가 어플이 실행이 된다면 초기값을 주는 영역인가요? 또한 모든 뷰에서 사용 가능한 함수인가요?(기본적으로 제공이 안되는 뷰나 컨트롤러들 에서도요!)    한경민   2016.7.19 09:29     
  • ios 라이프 사이클에서 뷰가 로드 되는 부분에서 재일 처음 호출되는 메소드 입니다. 단일 UIView는 조금 틀리지만 컨트롤러에서 대부분 뷰가 로드될때 호출 됩니다. 라이프 사이클 사진 첨부 해드릴게요!    myoung   2016.7.19 10:28     
  • 감사합니다!!!!!!!    한경민   2016.7.19 10:36     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close