トイレで1度に5日間溜めたう○こを出すようなものです。出ないかもしれません。重要なことは、身体をひどく傷つけることです。大腸の中で大きなう○こを扱うことと同じようにUserDefaultsも大切に扱いたいですね。わはは、はじめての人はびっくりしたかもしれませんね。これが私の説明の仕方です。誰も私を止めることはできません。この重大な問題を解決するためには、別の方法があります。それはCoreDataです。聞いたことがあるかもしれません。CoreDataについては、別の記事を公開する予定です。乞うご期待!ステージ2:実際にやってみるここまで楽しかったですね(少なくとも私は楽しみました)。それでは実際に手を動かす時間です。通常通り、以下のようにUserDefaultsのインスタンスオブジェクトを作成します。UserDefaults.standardこれでオブジェクトに値を入れられます。正確には、それぞれの「う○こ」に名前を付けられます。Int値を格納してみます。"myAge")ここまでのたとえはちょっと不快だと思うので、以下のようなかわいいハムスターにしてみます。以下のようになります。}}もしお父さんが値を変更したい場合は、アプリケーションのmyAgeの値を変更します。"myAge")以上です。サイズ、ゲームレベルなども保存できます。これで終わりではありません。ハムスターや人間と同じように、岩やダイヤモンドのようなものをすべて食べられるわけではありません。生後15日の赤ちゃんにお米は与えられません。String)しかし、驚くべきことにUserDefaultsはあらゆる種類のものを吐き出せます。私たちの身体も同じように機能するかもしれません。String)もう1つの問題は、どのようにDictionaryを保存/取得するかです。Dictionaryの値を直接設定するメソッドはありません。以下に2つ紹介します。Lee"]すばらしい。私の父が突然、背景色をピンクに保存したいと言い出しました...。UIColorを保存しないといけなくなりました😶。それはかなり深刻です。パート2:UIColorすでにUIColorを保存する直接的な方法がないことに気づいたかもしれません。タイプを操作する必要があります。UIColorをDataに変換してAny?として保存できます。それがばかげたことだと知っています。UIColorをDataに変換するには、特別なエンコーダNSKeyedArchiverを使います。このクラスは、岩と未加工金属から剣と盾を作るかじ屋のようなものだと想像してください。元の素材に戻すこともできます。詳細については、AppleのAPI、NSKeyedArchiverを参照してください。NSCoderのサブクラスNSKeyedArchiverは、オブジェクト(およびスカラー値)をアーキテクチャに依存しない形式/ファイルにエンコードして格納できる方法を提供する。Appleコードは以下のようになります。}}これでUIColorをDataに変換し、それをAny?として保存できました。これが唯一の方法です。ちなみに、Anyはほぼすべてのとても壮大なスーパークラスのようなものです。いま保存した「色」を吐く時間です。archievedDataを使って人間的に理解できないものにしたのでunarcheiveする時間です。おもしろいことにAny?の代わりにoutdata?を吐き出せます。技術的にはAny?を吐き出して、dataに変換したあと、UIColor?にできます。ここはシンプルに、data?からUIColor?にします。ソースコードはGithubにあります。Hopeは、Protocolを使用したUserDefaultsのレベルに引き上げる方法についてすばらしい記事を書いています。私も彼からたくさんのことを学びました。彼の手法は、私よりも確実にスマートです。Protocol』をチェックしてください。Communityで公開された記事です。Lee韓国生まれのサードカルチャーキッズです。最近、ニューヨークのエンジニアリングスクールを卒業して、好きなことを追求しています。多くの人がよりよく生活できるようなすばらしいプロダクトを作れるように、iOSの開発を教えたり、ブログ記事を書いたりしています。