2016-11-05 4 views
0

私は現在、複数のビュー間で情報を共有する必要のあるアプリを開発中です。簡単にするために、私は上記目的のためにシングルトンを使用することを好む。データ共有にSwiftでシングルトンを使用するにはどうすればいいですか?

私の質問は...それはすべてのビューコントローラおよび他のすべてのクラスファイルが使用できるようにシングルトンクラスを定義して初期化されるべき

  1. ですか?
  2. 他のクラスは、このシングルトンをどのように参照する必要がありますか?特定のクラス内のインポートステートメントや特別な初期化は必要ですか?

私はちょうど私が望ましいだろうhttp://krakendev.io/blog/the-right-way-to-write-a-singleton

このような方法@見つかった1行のシングルトンに興味をそそられてることに言及したいと思います。

はところで:私は感謝

のXcode 6.2でスウィフトを使用して開発しています。

+0

FYI - Xcodeのバージョンは無関係です。 Swiftのバージョンは重要です。 – rmaddy

+0

これにシングルトンを使用しないでください。これは設計上の決定が悪いことです。 – rmaddy

+0

ええ;シングルトンはこのような問題に対する簡単な解決策ですが、通常は物事をより複雑にすることになります。どのような種類のデータを共有する必要がありますか?例を教えていただけますか? –

答えて

0

シングルトンを定義すると、シングルトンはターゲット内のどこでも使用できます。それで、どこにでも置くことができます、一般にはそれ自身の.swiftファイルです。そして、それを使用するには、単に必要な特別なimport文で、次の操作を行いたい:

let kraken = TheOneAndOnlyKraken.sharedInstance 

ところで、あなたはので、Xcodeの6.3で導入されたスウィフト1.2以前からのXcode 6.2を、使用している場合あなたが参照しているその記事では、より洗練されたstructソリューションの一部に限定されています。

シングルトンを使用してアプリケーション全体でモデルデータにアクセスすることは夢中ですが、rmaddyが示唆しているように、この方法は一般的にお勧めしません。アプリがより複雑になるにつれて、微妙なメンテナンスの問題が導入され始めます。採用するのは良い習慣ではありません。これは確かに議論の対象ですので、ここでもう一度会話を開始するのではなく、What is so bad about singletons?にご連絡します。