【问题标题】:What is the best way to store an NSString? [closed]存储 NSString 的最佳方式是什么? [关闭]
【发布时间】:2012-10-03 22:35:23
【问题描述】:

我正在 Xcode 4 中制作一个需要保存一个 NSString 变量的 iOS 应用程序。有谁知道使用 .plist 文件是不是最好的方法,如果是,你需要什么代码来存储和检索NSStrings?

任何帮助都会很棒!

【问题讨论】:

  • 其实我在最后一行介绍了那个错误(哎呀)!

标签: ios cocoa-touch serialization nsstring plist


【解决方案1】:

有多种方法可以存储NSString,因为需求不同。在这种情况下,Plist 是不必要的(根据描述)。

选项 A 您可以使用:- [NSString writeToURL:atomically:encoding:error:]。在这种情况下,您只需要记住您保存它的文件 URL 和编码。

选项 B 另一个选项是通过NSCoding 保存它——这允许NSString 选择它找到的最好的序列化表示,给定它代表的字符串。

【讨论】:

  • 我很好奇你为什么不在这里推荐NSUserDefaults。有这方面的信息吗?
  • @RobertKarl 两个原因:a) OP 中没有指定用户默认值 belongs 。因此,我认为它不属于那里。 b) 使用 WrightCS 的例子;这实际上是一种美化/持久的全球价值。假设它与 OP 的需求兼容也不安全,因为该键只能有一个值。因此,我不建议将NSUserDefaults 作为存储任意NSString 的“最佳方式”。 OP 建议使用 plist 文件也表明文件更符合 OP 的用法。将挖掘a点的链接......
  • @RobertKarl 请参阅 Peter Hosey 关于何时使用和何时不使用 NSUserDefaults 的措辞恰当的解释:*.com/questions/5520797/…
  • 谢谢,非常感谢!我可能需要编辑我的应用程序;)
【解决方案2】:

最好将其存储在NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:@"My String" forKey:@"kMyStringKey"];

然后调用它:

lblMyLabel.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"kMyStringKey"];

【讨论】:

  • 是的,我会这样做。你打我一拳! :)
  • 谢谢大家!!!我试试看(抱歉 4 da 语法不好;)