私は上記の状態で質問しましたが、「OK、これにはencodeWithCoder:
とinitWithCoder:
のインスタンスが必要です」と言うためにどのような要件を満たす必要がありますか?通常、オブジェクトの状態をNSUserDefaults
に書き込むことができます。そのため、専門家はいつ別のものを使うのだろうと思いますか?iPhoneではいつencodeWithCoder:とinitWithCoder:を使用しますか?
答えて
NSCoder
は、シリアライズを実装する標準のCocoaメソッドです。詳細についてはAppleのArchives and Serializations Programming Guide for Cocoaを参照してください。
ユーザーデフォルトは基本的にプロパティリストです。プロパティリストはJSONと似ており、特定のタイプのデータ(NSString、NSNumber、NSData、NSDate、NSArray、NSDictionary)のみを格納できます。ユーザーのデフォルトに他のものを格納しようとすると、例外が発生します。プロパティリストは任意のオブジェクトグラフ、ツリーのみを扱うこともできません。
いつでもあなたのカスタム状態を取得し、それをプロパティーリスト互換データ構造に変換して、それをユーザーのデフォルト値に格納することができます。しかし、基本的にはオブジェクトの直列化の仕組みを実装しているので、NSArchiverがすでに提供しているより強力なものを使うこともできます。
initWithCoder:
は、XIBファイルのアンアーカイブ時にOSによって使用されます。詳しく見ると、XIBで作成したビューに対してinitWithFrame:
が呼び出されないことがわかります。代わりにinitWithCoder:
が呼び出されます。
私は手で編集する必要がないことを記憶するために何らかの複雑なデータがあるときはいつでも、NSCoderを使います。たとえば、私のアプリConverterは、インターネットからダウンロードした為替レートをNSCoderアーカイブに保存します。しかし、それはそのようなアーカイブに残っている唯一のものです。手作業で変更されるユニット定義は、アプリケーションバンドル内の一連のplistファイルに保存され、最近選択されたユニットや値などが保持されますNSUserDefaults。
- 1. ここでawakeFromNibまたはinitWithCoderを使用しますか?
- 2. initWithCoderとは何ですか?
- 3. は、initWithCoderとカスタムUIViewsについて混乱しています
- 4. iOS:各イニシャライザはいつテーブルセルに使用されますか? init、initWithFrame、initWithCoder、initWithStyle
- 5. initWithCoderはアカウントに自動レイアウトしない
- 6. rootViewControllerとは何ですか&いつ使用しますか?
- 7. xamarin C#はiPad用とiPhone用の2つのストーリーボードで動作しますか?
- 8. iPhoneはツリーライブラリを使用していますか?
- 9. IPHONEアプリで.netを使用していますか?
- 10. iPhone開発でジャスミンを使用していますか?
- 11. TypeScriptでは、いつ "let"を使用しますか、いつ "const"を使用しますか?
- 12. .inner()と.innerHTMLはいつ使用しますか? jQueryので
- 13. APIはiBeerとiMunchiesで使用されています。iPhoneアプリケーション
- 14. iPhone初心者:iPhoneでNFCを使用できますか?
- 15. iphone用のsqliteいつか
- 16. ハッシュテーブルはいつ使用しますか?
- 17. ByteStringはいつ使用しますか?
- 18. ストリームはいつ使用しますか?
- 19. ストアドプロシージャはいつ使用しますか?
- 20. クラウドサーバはいつ使用しますか?
- 21. ストーリーボードはいつ使用しますか?
- 22. SpringApplicationBuilderはいつ使用しますか?
- 23. getElementByIdはいつ使用しますか?
- 24. ConcurrentSkipListMapはいつ使用しますか?
- 25. CFReleaseはいつ使用しますか?
- 26. OneTupleはいつ使用しますか?
- 27. パーサーはいつ使用しますか?
- 28. passport.jsはいつ使用しますか?
- 29. BindAttributeはいつ使用しますか?
- 30. initWithCoder:カスタムビュー - インスタンス化されているビューコントローラを特定します
こんにちはベン、私はXIBを使用しているときこのメソッドなしでうまくいく。私がプログラムで構築したビューについては、通常はloadViewだけでうまくいきます。 IBで構築したビューについては、私はviewDidLoad {}を使用します。ですから、私はinitWithCoderを使うのが当然のことを理解しようとしています: – Coocoo4Cocoa