我可以在 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。

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html#//apple_ref/doc/uid/TP40001075-CH8-SW1

https://developer.apple.com/icloud/

http://www.appcoda.com/sqlite-database-ios-app-tutorial/