iOSでCoreDataを使用して保存される文字列の長さに制限があるかどうか疑問に思いました。(デバイスで使用可能なRAMまたはディスクスペースを除く)
4 に答える
Core Dataのストレージ制限に達する前に、iOSデバイスのパフォーマンス制限に達する可能性が高いと思います。また、大量のデータを取り込むことでパフォーマンスが低下します。
パフォーマンスと管理性の両方の点で、テキストの大きなブロックを小さなチャンクに分割する方が得策です。
とにかくマーカス・ザラが私に言ったことを覚えています。
確認のために、CoreDataには特定の制限がないことを確認してください(メモリ/ディスクスペースの制限はカウントされません)。iOSでCoreDataを使用する場合、ほとんどの場合、永続ストレージとしてsqliteを使用します。CoreDataはStringをVarcharとして、sqliteの観点から保存します。
SQLiteはVARCHARの長さを強制しません。VARCHAR(10)を宣言すると、SQLiteは5億文字の文字列を喜んで格納します。そしてそれはすべての5億文字を無傷に保ちます。コンテンツが切り捨てられることはありません。SQLiteは、Nの値に関係なく、「VARCHAR(N)」の列タイプが「TEXT」と同じであると理解します。
... sqliteのFAQから引用
モデルファイルで割り当てない限り、私が知る限り制限はありません(最小長と最大長のセクションがあります)。
Core Dataのドキュメントの制限を読んだことは覚えていませんが、Core Dataは実際のデータベース(通常はsqlite)上のフレームワークにすぎないことを覚えておいてください。制限は基盤となるDBによって決定されると考えるのが安全だと思います。