我可以在NSUserDefaults中存储多少数据?

时间:2016-03-12 17:31:46

标签: swift nsuserdefaults

我知道NSUserDefaults并不适合存储大量数据,但我不知道实际限制是多少。这让我想到了......

1。是否有推荐的尺寸限制?

2。有没有办法查看我存储的数据的大小?

在这种情况下,我考虑使用NSUserDefaults来存储字符串数组。

2 个答案:

答案 0 :(得分:7)

似乎限制是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/

答案 1 :(得分:1)

我认为只要您的设备上有足够的空间,您就可以存储您想要的所有数据......设备是限制。

NSUserDefaults值存储在.plist文件中:

请参阅此帖子,了解其中:Get NSUserDefaults plist file from device