ここに状況があります。 私は天気予報のためのすべての変数(最低気温、最高気温、湿度など)を含む素早いモデルクラスファイルを持っています。 クラスには、APIからすべてのデータをダウンロードする関数も含まれています。 私の質問は、クラス自体の内部にクラスの配列を作成することができます。そうすれば、APIが返す予測日数に基づいて(同じクラスの)いくつかのオブジェクトを追加できますか? もしそうなら、どのように達成できるか教えていただけますか? 私はそれが完全に動作する他のオプションは、(ViewControllerの)予測クラスの外でAPIのダウンロードと解析を行うことですが、それはViewControllerを面倒にしてしまいます。クラス自身のインスタンス内にクラスのインスタンスを作成します
答えて
定義内でクラス名を参照できないことは何もありません。あなたのモデルではなく、専用のクラスで全天候の件のデータを取得するAPIを呼び出すべきではありません
class Foo {
var boz = [Foo]() // you can append to this array as needed
}
何らかの理由で、let bar = Foo()行でスレッド:EXEC_BAD_ACCESSエラーが発生することがあります。 –
ああ、そうですね、ごめんなさい。初期化中は、最初のFooがbarを初期化しようとすると無限ループに入り、次のものはinit barなどを試みます。私はその行を削除する答えを編集した、あなたはまだFoo(変数boz)の配列を持つことができます、あなたは最初のクラスが作成された後に追加する必要があります。 – par
:だから、このような何かを行うことができます。 また、データを解析してモデル内に格納しないでください。
モデルでは、オブジェクトとメソッドのすべての属性を持つ必要があります。
このメソッドをすべて実装してデータを保存するHelperクラスを作成することもできます。
基本的には、JSONを解析してデータを配列に格納するヘルパークラスを作成し、そのViewControllerでそのヘルパークラスを呼び出してUIを更新する方が良い方法でしょうか? –
正確です。これを行うことで、OOPを尊重することができます。そしてあなたはコードを簡単に管理して読めるようになります。私の英語を謝ります。 –
ありがとうございます。意味あり。 私はトピック以外の質問があります。あなたが言及したようなベストプラクティスのための良いリソースを知っていますか? –
- 1. クラス自身のインスタンスを作成します
- 2. クラスのインスタンスを自動作成
- 3. クラスのインスタンスを作成するには?
- 4. C++のクラス関数内からクラスのインスタンスを作成しますか?
- 5. 同じクラス内のマルチ「自己」EJBインスタンス
- 6. クラスの現在のインスタンスを新しく作成したインスタンスに渡します
- 7. Java:UIクラスの新しいインスタンスを作成
- 8. クラス内でインスタンスの
- 9. 他のクラスのインスタンスを作成する
- 10. サブクラス内のクラスをインスタンス化し、別のサブクラス内のインスタンスにアクセス
- 11. クラス内のメソッドの内部でクラスのインスタンスを作成する方法、Python
- 12. クラスのインスタンスを作成する
- 13. クラスのインスタンスを作成する
- 14. クラスのインスタンスをReflection.Emmitで作成する
- 15. ハスケル独自のインスタンス型クラス
- 16. スレッドを作成するクラスのインスタンスを複数インスタンス化する...?
- 17. 関数内に異なるクラス型のインスタンスを作成する
- 18. nibファイルのクラスのインスタンスを作成
- 19. Python - クラスのインスタンスのリストを作成
- 20. クラスのインスタンスをベースクラスから作成
- 21. アンマネージdllクラスのインスタンスを作成
- 22. そのクラス内のクラスのインスタンスのconst配列を作成する方法は?
- 23. クラス内でインスタンス化
- 24. autofacインスタンスのコンストラクタ内のクラス
- 25. 自動クラスのインクルードとインスタンスの作成PHP
- 26. Java:ローカル内部クラスのインスタンスを作成する
- 27. Kotlinでプライベート内部クラスのpublicインスタンスを作成する
- 28. あるクラスのインスタンスを別のクラスのインスタンスにするには
- 29. 内部クラスのインスタンス化
- 30. Python - クラスの作成とインスタンス化
はい、これを行うことができます。おそらく、 'getForecast'関数をクラス関数にするでしょう。構文のトリックはありません。 – Paulw11