私はiOSにはかなり新しいので、私の問題のための最善の解決策はわかりません。私はAPIを使ってアプリケーションに表示するデータを取得します(要求を送信し、Alamofireを使用してjsonファイルを取得する)。私の問題は、APIの作成者が常にこの問題について知っているので、私はこのAPIに常に頼ることができないということです。だから私は私のアプリで必要なすべてのjsonファイル(数十)を保存することを考えていた。これはベストプラクティスですか?もしそうなら、どうしたらいいですか?Swift - インストール前にアプリにjsonファイルを保存する方法
答えて
あなたはそれらのplistsであなたのアプリをバンドルする必要があります。アプリの初回起動時に利用できるようになりますが、アプリのサイズも大きくなります(実際には個々のplistサイズに依存します)。
plistは、Bundleリソースにコピーする必要があります。ワークスペース/プロジェクトに追加するだけです。
これらのplistは、.storyboard、.xibファイル、イメージなどのアプリケーションにバンドルされます。これらはあなたのIPAから直接読み取ることができるようまた、コピーバンドルリソースを念>> BuildPhases-を標的 - を確認してその後これらのプレースメントリストに
を任意の秘密データを保持しません。あなたのファイルはそこにリストされるべきです。
同梱のplist(スウィフト3)からデータを読み取るために:私は、問題を修正再表示し、私が正しく理解している場合を教えてみましょう
if let fileUrl = Bundle.main.url(forResource: "fileName", withExtension: "plist"),
let data = try? Data(contentsOf: fileUrl) {
if let result = try? PropertyListSerialization.propertyList(from: data, options: [], format: nil) {
print(result) // result is of type Any here, and needs to be converted to appropriate type(depends on plist root)
}
}
私は必要なもののように聞こえる。私は新しいので、詳細を教えていただけますか? – Efi
これらのplistは、.storyboard、.xibファイル、イメージなどのアプリケーションにバンドルされています。また、これらはあなたのipaから直接読むことができるので、これらのplistsに秘密のデータを保持しないでください。 –
。あなたのアプリケーションは、データを取得するためにサーバーへの呼び出しに依存しており、サーバーは必ずしも応答するとは限りません。サーバーへのヒットが成功したときに、サーバーが失敗したときにフェッチしたデータを使用してそれらを使用できるようにすることを考えています。
この場合、これはアプリによって異なります。アプリケーションがライブコンテンツをユーザーに表示することに依存する場合、古いコンテンツを表示することは役に立たず、データを保存することは無意味です。しかし、ユーザーに提示しているコンテンツがほぼ同じである場合や、このデータから多くの変更が加えられていない場合は重要でない場合は、このデータを保存してユーザーに表示することをお勧めしますモード"。
このデータを保存するにはどうすればよいですか? iOSにはコンテンツを保存する方法がいくつかあります。 1つはあなたのオブジェクトをNSUserDefaultsに保存していますが、これはあまり推奨されていません。他の2つの方法は、SQLLiteまたはCoreDataに保存しています。ドキュメンテーションでもっと調べたり、これを行う方法に関する記事を読むことができます。私はSQLLiteを私の個人的な好みとして保存するのが好きです。あなたは3つすべてを読んで、あなたのニーズを最もよく満たすものを見てください。
これが役に立ちます。がんばろう。
ありがとうございます。私はサーバーの応答に頼ることができないので、私はアプリケーションにjsonファイルを追加したいと思います。ユーザーがアプリをインストールすると、私はオフラインにしてもデータを見ることができます。そして、はい、データはあまり変わらないので、大丈夫です。 – Efi
- 1. アプリにパスワードを保存する方法
- 2. JSON結果を[CLLocation]に保存SWIFT
- 3. アンドロイド:JSONデータをファイルに保存して取得する方法
- 4. RESTAssured出力をJSON形式のファイルに保存する方法
- 5. インクリメンタルに名前を付けてファイルを保存する方法
- 6. ピップを使用してパッケージをインストールし、名前をファイルに保存して後でインストールする方法
- 7. 名前をQbasicファイルに保存する方法は?
- 8. Swift:アプリの実行中にプッシュ通知を保存する方法
- 9. Redisに保存する前にJSONデータを圧縮する方法は?
- 10. パースされたjsonデータをswiftで配列に保存する方法3
- 11. アプリが終了する前にアプリデータを保存するiOS
- 12. jsonデータのnsuserdefaultを保存して、それを次のView Controller Swift 3.0に保存する方法は?
- 13. コンテンツプロバイダにファイルを保存する方法
- 14. ファイルをローカルディレクトリに保存する方法
- 15. レジストリキーをファイルに保存する方法
- 16. CGPathをファイルに保存する方法
- 17. ファイルをsqliteに保存する方法
- 18. Android:アプリがアンインストールされる前にキーを保存してアプリを再インストールするときに戻るキー
- 19. djangoがインストールされているアプリのモデルの保存方法
- 20. Swiftを使用してバックグラウンドスレッドにファイルを保存する方法は?
- 21. ローカルに保存されたxmlファイルを.plistファイルに保存する方法
- 22. jsreportonline - PDFファイルに保存する方法
- 23. Cordova:インストール後にアプリの名前を設定する方法
- 24. json辞書をコアデータに保存するSwift 3
- 25. データでjsonファイルを編集して保存する方法
- 26. HTML5キャンバスイメージをjsonファイルとして保存する方法
- 27. キャンバスイメージを保存する方法サーバーにアップロードする前に?
- 28. 座標をFirebase Swift 2に保存する方法
- 29. コアデータに画像を保存する方法SWIFT
- 30. Swift:特定の日付にデータを保存する方法
エンドポイントに接続できない場合は、必ずコンテンツファイルをプロジェクトに追加して読み込むことができます。ファイルをプロジェクトに追加し、「バンドルリソースのコピー」として選択することができます。 –
私は必要なものと同じように聞こえます。 – Efi