繁体   English   中英

NSUserDefaults setObject和IntegerForKey,在同一密钥上使用,如果没有,我该如何解决?

[英]NSUserDefaults setObject and IntegerForKey, use on the same key, if not how can I workaround?

我需要遍历NSUserDefaults中的所有键,并将它们转换为另一种格式。 稍后,我将以编程方式将它们转移回去。

我有很多键,我无法按照我的命名约定或其他方式来确定我使用的是setObject还是setInteger等。

如果我使用setObject,这将使我能够在该键上使用integerForKey吗?

如果我不想使用,我可以改用吗?

不,如果您使用integerForKey:那么您将无法获得正确的对象。 但是,如果使用objectForKey:则可以获得正确的对象。 这是因为如果使用过setInteger:forKey:它将自动调用setObject:forKey: setInteger:forKey: 因此,密钥会有一个对象。 因此,您要做的就是遍历键,使用objectForKey:获取对象,并将其转换为所需的数据类型。

我很确定使用setObject将允许您以后使用integerForKey。

另一种方法是在项目中添加一个plist并将所有内容存储在其中。 它基本上与NSUserDefaults所做的相同,只是您将手动完成所有操作。 您可以只将plist的内容读取到NSArray或NSDictionary(首先选择使用其构造的那个),然后从该对象访问所需的成员。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM