私は、サーバーからjsonとしてデータを取り出し、さまざまな種類のオブジェクトにシリアル化するiOSアプリケーションを用意しています。型は複雑になる可能性があり、サブタイプを含むことができ、継承することができるため、制限はありません。すべてをさらに複雑にするもう1つのタイプは、AnyObjectとして格納されるタイプのものですか?実行時にのみ、それらは特定の規則に従って実際の型にシリアル化されています。そのような何か:複雑な動的オブジェクトをローカルに保存する方法(iOS、swift)
class A {
var typeName: String?
var b: AnyObject?
}
それは、それはそのような何かを行うことができ連載のそのとき:
また、すべてのデータに対して行われるべきで問い合わせるif let someClass = NSClassFromString(typeName) as? SomeGenericType.Type{
b = someClass.init()
}
。現在、私はそれらをすべてローカルに保存しようとしていますが、メモリにロードしてコードからクエリを取得しています。私はユーザーのデフォルトを使用していますが、いくつかの制限があります。また、カスタムコードを提供して機能させる必要がありました。新しいフィールドを追加するたびに、コーディングで何かが欠けていて、何も動作しませんでした。それは痛みです。
理想的には、いくつかの魔法のコマンドを実行するだけで、すべてのオブジェクトはどれほど複雑であってもローカルストレージに送信されます。同じものをこのストレージから取り出します。また、ユーザーがデータを変更するので、プライマリJsonだけを保存することはできません。そして、私はそれが苦痛であるとしても、オブジェクトをジェイソンに隠したくはありません。
提案がありますか?
sqliteまたはcoredataに保存できます! – Lion
レルムを使用することもできます。それは、今日、人気があり、CoreDataよりはるかに簡単です。 – Axel
@Lion、私はsqliteについて考えましたが、それはリレーショナルデータベースであり、私のデータはリレーショナルではなく、どのスキーマにも適合できません。それはsqliteで動作しますか? – mimic