我要存储用户信息的一些在钥匙扣上的iOS的字符串,那么有没有在钥匙串绳子的长度极限?
谢谢。
我要存储用户信息的一些在钥匙扣上的iOS的字符串,那么有没有在钥匙串绳子的长度极限?
谢谢。
这是很难回答:)它应该支持的最大长度的NSString
因此,钥匙扣字符串可以容纳一点点超过420个十亿字符相同的NSString
我扔在一起的iOS应用程序,将使用做一个二进制搜索该库与钥匙串相互作用,并确定我可以存储最多是一个NS(可变)字符串长度为16777110。 所以,明显低于任何一个NSString的最大长度或SQLITE_MAX_LENGTH的默认值建议在其他的答案。
编辑:如果您想快速验证这个答案,我建议尝试存储与长度16777110字符串在钥匙串,然后试图用一个长度为16777111。 如果第一个作品,第二个没有,这个答案是正确的。
IO的钥匙串被实现为SQLite的数据库(参见此处例如)。 因此,存储在一个SQLite数据库字符串的最大长度可以是一个上限在钥匙串字符串的最大长度。
根据此页面上sqlite.org字节的最大数目为一个字符串或BLOB由预处理器宏SQLITE_MAX_LENGTH,其默认值是10 ^ 9的限制。 因此,假设16位编码字符串的,字符串的最大长度将是这个值的一半。 但是,它可能是苹果公司用来SQLITE_MAX_LENGTH较低的值。