如何在Swift中动态处理文本

时间:2015-02-04 15:08:41

标签: ios swift

我需要根据变量动态处理和存储文本。

我有一个核心文本,它是我的Swift-iOS应用程序的内容。但是这篇文章的某些部分改变取决于用户数据,例如

"{{ if user.age > 15}} You are very young {{ else }} You are not too young {{ end }} but I will show you some magic in this app."
  1. 我不知道在我的应用程序中存储此类文本的方式和位置(将整个文本存储在文件中,或将其拆分并单独存储),
  2. 如何处理此类文本以根据用户变量显示它。
  3. 谢谢你的消化。

2 个答案:

答案 0 :(得分:1)

执行此操作的正确方法是为文本定义密钥(例如:WelcomeTextUserYoungWelcomeTextUserOld),然后将这些密钥与.string文件中的整个字符串相关联。您必须在显示字符串的类中编写逻辑(user.age > 15)(如果它在多个位置显示,则在公共类中)。

我知道将整个字符串写两次可能听起来像冗余和代码重复,但你永远不知道是否翻译它仍然是英文的文本。因此,即使您没有考虑本地化应用程序,也可以从一开始就更好地实施良好实践;)

答案 1 :(得分:0)

您可以使用NSUserDefaults存储用户数据。例如:

var storage = NSUserDefaults.standartUserDefaults()
storage.setInteger(yourInt, forKey: "just a string using which you can access the value")
storage.setObject(yourObject, forKey: "the same as above") //yourObject can be a string, or a NSData
storage.synchronize()

要更新UI元素,您可以使用连接到函数的计时器,从NSUserDefaults中获取对象并更改所需元素(标签,按钮等)