我可以在 NSUserDefaults 中存储多少数据?
How much data can I store in NSUserDefaults?
我知道 NSUserDefaults
不适合存储大量数据,但我不知道实际限制是多少。这让我想到......
1.是否有推荐的大小限制?
2. 有没有办法查看我正在存储的数据的大小?
在这种情况下,我正在考虑使用 NSUserDefaults
来存储字符串数组。
我认为只要您的设备上有足够的 space 就可以存储您想要的所有数据...设备是极限。
NSUserDefaults
值存储到 .plist
文件中:
查看此 post 以了解位置:Get NSUserDefaults plist file from device
似乎限制是 iOS 的最大文件大小(逻辑上),目前为 4GB:https://discussions.apple.com/thread/1763096?tstart=0。数据的精确大小受编译器类型(NSData、NSString 等)或资产包中的文件限制。
我确信在某处有关于 Swift 类型的低级文档——但您需要自己去发现它。 :)
我没有重定向到另一个答案,因为类似的问题也表明限制是设备大小。
请注意,NSUserDefaults 被认为对大文件有害,因为所有默认值都会在应用程序启动时立即加载。访问时间会变慢,性能会受到影响。考虑对大型文件使用结构化存储介质,例如 Core Data CloudKit 或 SQLite。
我知道 NSUserDefaults
不适合存储大量数据,但我不知道实际限制是多少。这让我想到......
1.是否有推荐的大小限制?
2. 有没有办法查看我正在存储的数据的大小?
在这种情况下,我正在考虑使用 NSUserDefaults
来存储字符串数组。
我认为只要您的设备上有足够的 space 就可以存储您想要的所有数据...设备是极限。
NSUserDefaults
值存储到 .plist
文件中:
查看此 post 以了解位置:Get NSUserDefaults plist file from device
似乎限制是 iOS 的最大文件大小(逻辑上),目前为 4GB:https://discussions.apple.com/thread/1763096?tstart=0。数据的精确大小受编译器类型(NSData、NSString 等)或资产包中的文件限制。
我确信在某处有关于 Swift 类型的低级文档——但您需要自己去发现它。 :)
我没有重定向到另一个答案,因为类似的问题也表明限制是设备大小。
请注意,NSUserDefaults 被认为对大文件有害,因为所有默认值都会在应用程序启动时立即加载。访问时间会变慢,性能会受到影响。考虑对大型文件使用结构化存储介质,例如 Core Data CloudKit 或 SQLite。