iOSのキーチェーンにいくつかのuserinfoを文字列として保存したいのですが、キーチェーンの文字列の長さに制限はありますか?
ありがとう。
このライブラリを使用してバイナリ検索を実行し、キーチェーンと対話するiOSアプリをまとめて、保存できるのは長さが16,777,110のNS(Mutable)Stringであると判断しました。したがって、NSStringの最大長、または他の回答で提案されているSQLITE_MAX_LENGTHのデフォルト値よりも著しく短いです。
編集:この答えをすばやく確認したい場合は、長さ16,777,110の文字列をキーチェーンに保存してから、長さ16,777,111の文字列を試してみることをお勧めします。最初のものが機能し、2番目のものが機能しない場合、この答えは正しいです。
答えるのは難しいです:) NSStringの最大長をサポートする必要があります
したがって、キーチェーン文字列はNSStringと同じ42億文字強を保持できます
iOSのキーチェーンはSQLiteデータベースとして実現されています(たとえば、ここを参照)。したがって、SQLiteデータベースに格納されている文字列の最大長は、キーチェーン内の文字列の最大長の上限になる可能性があります。
sqlite.orgのこのページによると、文字列またはBLOBの最大バイト数は、デフォルト値が10^9であるプリプロセッサマクロSQLITE_MAX_LENGTHによって制限されます。したがって、文字列の16ビットエンコーディングを想定すると、文字列の最大長はこの値の半分になります。ただし、AppleがSQLITE_MAX_LENGTHに低い値を使用している可能性があります。