xcode7.x Swift 에 대해서 질문이 있습니다.(Struct와 Array를 이용중 오류)
조회수 1930회
안녕하세요 swift를 이용해 어플을 만들고있는 학생입니다. 바로 질문 드리겠습니다.
현재 상황은 한 테이블 뷰에서 구조체 선언후 일부 초기값을 준 후 초기값을 준 구조체를 다시한번 모아서 배열로 만들려고 하는 상황입니다. play ground에서는 문제가 없는데 project에 쓰기만 하면 밑에 나온 사진처럼 오류가 발생합니다. 인터넷에서 찾아보니 override func 내부에 작성을 하면 괜찮은거 같기는 한데... 저는 이 배열을 전역변수로써 사용하고 싶습니다. 방법이 없을까요??
1 답변
-
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) }
제가 질문을 잘 못 이해하거나 틀린점이 있다면 편집요청 또는 댓글을 남겨주세요 :)
++++++++++++추가++++++++++++
- 너무너무 잘 됩니다!! viewDidLoad() 라는 함수 자체가 어플이 실행이 된다면 초기값을 주는 영역인가요? 또한 모든 뷰에서 사용 가능한 함수인가요?(기본적으로 제공이 안되는 뷰나 컨트롤러들 에서도요!) 한경민 2016.7.19 09:29
- ios 라이프 사이클에서 뷰가 로드 되는 부분에서 재일 처음 호출되는 메소드 입니다. 단일 UIView는 조금 틀리지만 컨트롤러에서 대부분 뷰가 로드될때 호출 됩니다. 라이프 사이클 사진 첨부 해드릴게요! myoung 2016.7.19 10:28
- 감사합니다!!!!!!! 한경민 2016.7.19 10:36
댓글 입력