35

iOSのキーチェーンにいくつかのuserinfoを文字列として保存したいのですが、キーチェーンの文字列の長さに制限はありますか?

ありがとう。

4

3 に答える 3

54

このライブラリを使用してバイナリ検索を実行し、キーチェーンと対話するiOSアプリをまとめて、保存できるのは長さが16,777,110のNS(Mutable)Stringであると判断しました。したがって、NSStringの最大長、または他の回答で提案されているSQLITE_MAX_LENGTHのデフォルト値よりも著しく短いです。

編集:この答えをすばやく確認したい場合は、長さ16,777,110の文字列をキーチェーンに保存してから、長さ16,777,111の文字列を試してみることをお勧めします。最初のものが機能し、2番目のものが機能しない場合、この答えは正しいです。

于 2014-06-11T14:32:05.993 に答える
17

答えるのは難しいです:) NSStringの最大長をサポートする必要があります

したがって、キーチェーン文字列はNSStringと同じ42億文字強を保持できます

于 2012-11-21T08:14:20.817 に答える
5

iOSのキーチェーンはSQLiteデータベースとして実現されています(たとえば、ここを参照)。したがって、SQLiteデータベースに格納されている文字列の最大長は、キーチェーン内の文字列の最大長の上限になる可能性があります。

sqlite.orgのこのページによると、文字列またはBLOBの最大バイト数は、デフォルト値が10^9であるプリプロセッサマクロSQLITE_MAX_LENGTHによって制限されます。したがって、文字列の16ビットエンコーディングを想定すると、文字列の最大長はこの値の半分になります。ただし、AppleがSQLITE_MAX_LENGTHに低い値を使用している可能性があります。

于 2013-08-10T18:47:14.617 に答える