こんばんわ。私です。
前回タブについて記事を書いたんですけど、
拡張部分で「シングルトンにしたら良いよね」と書いていましたが。
実際にシングルトンにしてみて感動しました。
ので、その感動を記事にしたいと思います。
シングルトンのやり方は沢山記事が上がっているので
そちらをご参考にして下さい。
ちなみに僕が参考にした記事は此方です
【概要】
オブジェクト指向初心者という同志の皆様。
やっている内にこう思うことがあるはずです。
「別コントローラーで生成したインスタンスにアクセスするのつれぇええええええ」
と。
例えば、タブがタップされた際に、タブの持っているパラメーターを確認したいとか。
例えば、裏でずっと動き続けているインスタンスのメソッドを動かしたいとか。
例えば、裏で動き続けているインスタンスに動きを与えたい時とか。
特定のインスタンスに何度も何度もアクセスする機会がある時とかに
いちいちそのインスタンスを別のコントローラーから予防とするのは面倒ですよね!
そんな時に役立つ考え方がシングルトン。
クラス自身で常に自分が生成した同じインスタンスを指定できるようにすることで
複数のクラスで使うメソッドやプロパティのやり取りが 劇的に簡単になります!!
やったー!
【用途】
凄く簡単。
1、クラスが自分のインスタンスを作るように仕組み作る
2、インスタンス作る。
それだけです。詳しくは上で貼っつけた記事を見て下さい。
【効能】- というか活用法 -
さっきから言ってますが、タブビューとか
そのタブビューを乗せるUIViewとかは意図するしない関係なく
絶対に開放することは無いですよね。
そういうところはシングルトンにしても問題が無いですし、
アクセスしやすくなるのでとても便利です。
他にはネットワーク通信とか
色々な場所で共通して使うメソッドを書きためている実行ファイルなんかも
シングルトンにすると色々引っ張ってきやすいですよ!
【注意】
シングルトンとするクラスは複数のインスタンス生成はしないという
考え方のもと行われております故、同じインスタンスは2つ作れません。
というか、作るならシングルトンにする必要ないですよね。
そのため、シングルトンにするクラスは
インスタンスを呼ぶ用のメソッドを作ることになると思うのですが
インスタンスにアクセスするときは絶対そのメソッドを使うこと
というルールを守りましょう!
変にalloc initと書くと初めてソース見る人が困惑してしまいます。
また、性質上絶対開放されないです。
常にひとつしか無いけど、あるタイミングでは開放したい。
なんてテクニカルですけど、そういう場合は使用を避けたほうが良いですね。
シングルトン活用しようね!
同士の皆さん。
シングルトン便利です!
何よりすごく簡単です
では簡単な記事でしたが、これで失礼させて頂きます。。。