在 iOS 中存储可变字典
Storing Mutable Dictionary in iOS
我正在我的 iOS 应用程序中创建一个字典,它将包含数千个字符串。该应用程序经常写入和读取它(每当用户刷新提要时 100 次),因此速度很重要。此外,它需要在会话之外保存。
我试过 NSUserDefaults,但它似乎应该用于不可变词典。钥匙串似乎也不适合使用。
我应该用什么来存储字典?
创建一个可变字典并将其作为实例变量保存在控制器class中,即refreshes/adds/edits信息。当你刷新时,速度不是一个因素,因为字典不像数组那样移动,你可以通过它的键直接访问值,你不必遍历它之前的值。
正确选择你的数据结构,就好像你想以这样的方式存储你的字符串,刷新后键将相同但你将编辑值,NSMutableDictionary 是你的朋友,否则如果你不想订购,你可以使用 NSSet但不想要任何相同的记录或 NSMutableArray。
[编辑]
如果您想将数据存储在应用程序会话之外,那么我会说使用
核心数据,它轻量级、速度快,它不是数据库,而是一种持久存储数据。 (非易失性)。
您也可以使用 SQLite,但核心数据更快且重量更轻。
我正在我的 iOS 应用程序中创建一个字典,它将包含数千个字符串。该应用程序经常写入和读取它(每当用户刷新提要时 100 次),因此速度很重要。此外,它需要在会话之外保存。
我试过 NSUserDefaults,但它似乎应该用于不可变词典。钥匙串似乎也不适合使用。
我应该用什么来存储字典?
创建一个可变字典并将其作为实例变量保存在控制器class中,即refreshes/adds/edits信息。当你刷新时,速度不是一个因素,因为字典不像数组那样移动,你可以通过它的键直接访问值,你不必遍历它之前的值。 正确选择你的数据结构,就好像你想以这样的方式存储你的字符串,刷新后键将相同但你将编辑值,NSMutableDictionary 是你的朋友,否则如果你不想订购,你可以使用 NSSet但不想要任何相同的记录或 NSMutableArray。
[编辑] 如果您想将数据存储在应用程序会话之外,那么我会说使用 核心数据,它轻量级、速度快,它不是数据库,而是一种持久存储数据。 (非易失性)。 您也可以使用 SQLite,但核心数据更快且重量更轻。