iphone - puedo - ¿Hay algún límite de longitud de cadena almacenada en llavero?
no puedo aprobar mi iphone (3)
El llavero de iOS se realiza como base de datos SQLite (ver here por ejemplo). Por lo tanto, la longitud máxima de una cadena almacenada en una base de datos SQLite podría ser un límite superior para la longitud máxima de una cadena en el llavero.
De acuerdo con esta página en sqlite.org, el número máximo de bytes para una cadena o BLOB está limitado por la macro de preprocesador SQLITE_MAX_LENGTH , cuyo valor predeterminado es 10 ^ 9 . Entonces, suponiendo una codificación de 16 bits de la cadena, la longitud máxima de una cadena sería la mitad de este valor. Sin embargo, podría ser que Apple use un valor más bajo para SQLITE_MAX_LENGTH .
Quiero almacenar alguna información de usuario como una cadena en Keychain en iOS, entonces ¿hay algún límite de longitud de la cadena en Keychain?
Gracias.
Reuní una aplicación de iOS que haría una búsqueda binaria utilizando esta biblioteca para interactuar con el llavero, y determiné que lo máximo que podía almacenar era una cadena NS (mutable) con una longitud de 16,777,110. Por lo tanto, notablemente menor que la longitud máxima de un NSString o el valor predeterminado de SQLITE_MAX_LENGTH como se sugiere en otras respuestas.
EDITAR: Si desea verificar rápidamente esta respuesta, sugeriría que intente almacenar una Cadena con una longitud de 16,777,110 en el llavero y luego una con una longitud de 16,777,111. Si el primero funciona y el segundo no, esta respuesta es correcta.