2016-09-10 4 views
0

여기 상황이 있습니다. 일기 예보 (최저 기온, 최고 기온, 습도 등)에 대한 모든 변수가 포함 된 신속한 모델 클래스 파일이 있습니다. 클래스에는 API의 모든 데이터를 다운로드하는 함수도 포함되어 있습니다. 제 질문은 API 자체가 반환 한 예측 일 수를 기준으로 동일한 클래스의 여러 객체를 추가 할 수 있도록 클래스 내부에 클래스 배열을 만들 수 있습니까? 그렇다면 달성 방법을 알려주시겠습니까? 내가 완전히 작동하는 다른 옵션은 API를 다운로드하고 (ViewController의) 예측 클래스 외부에서 구문 분석을 수행하는 것이지만 내 ViewController가 지저분해질 수 있습니다.자체의 내부에 클래스 인스턴스 만들기

+0

예, 가능합니다. 당신은 아마도'getForecast' 함수를 클래스 함수로 만들 것입니다. 구문에 트릭이 없습니다. 간단히 배열을 작성하시오. 보통은 – Paulw11

답변

0

정의 내에서 클래스 이름을 참조하는 것을 방해하는 것은 없습니다. 당신은 당신의 모델뿐만 전용 클래스의 모든 날씨의 datas을 얻을 수있는 API를 호출하지 않아야합니다

class Foo { 
    var boz = [Foo]() // you can append to this array as needed 
} 
+0

어떤 이유로 나는 let bar = Foo() 라인에서 Thread : EXEC_BAD_ACCESS 오류를 계속 발생시킵니다. –

+0

오, 그래, 미안해. 초기화하는 동안 초기화하면 무한 루프로 들어가고 첫 번째 Foo는 막대를 초기화하려고 시도하고 다음은 초기화 막대를 시도합니다. 나는 그 라인을 제거하는 해답을 편집했다. 여전히 Foo (변수 boz)의 배열을 가질 수있다. 초기 클래스가 생성 된 후에 그것을 추가하면된다. – par

0

: 그래서 당신은 이런 식으로 뭔가를 할 수 있습니다. 또한 데이터를 구문 분석하여 모델에 저장하면 안됩니다.

모델에서 개체 및 메서드의 모든 특성 만 있으면됩니다.

아마도이 모든 메소드를 구현하고 데이터를 저장하는 Helper 클래스를 만들 수 있습니다.

+0

그래서 기본적으로 JSON을 구문 분석하고 배열에 데이터를 저장하는 도우미 클래스를 만든 다음 내 UI를 업데이트하기 위해 ViewController에서 해당 도우미 클래스를 호출하는 것이 더 좋습니다. –

+0

바로. 이렇게함으로써 당신은 OOP를 존중합니다. 그리고 코드는 쉽게 관리 할 수 ​​있고 읽을 수 있습니다. 내 영어를 사과해라. –

+0

감사합니다. 이것은 의미가 있습니다. 주제와 관련없는 질문이 있습니다. 당신이 언급 한 것과 같은 모범 사례를위한 훌륭한 자료를 알고 계십니까? –

관련 문제