Swift:根据提供的用户信息读取字符串

时间:2017-07-12 12:23:55

标签: ios swift string

在Xcode(Swift)上我想根据用户提供的信息加载存储在应用程序中的数据。

例如,用户输入" Xcode":

 var userInput = "Xcode"

有了这些信息,我想显示一个存储的字符串,该字符串与应用程序中已经存在的名称完全相同:

 let Xcode = "Xcode is a development tool."

这是我打印时得到的:

 print ("Print: ", userInput) ->      Print: Xcode

但我想从应用程序存储的字符串值中打印结果。我正在寻找的结果是:

 print ("Print: ", userInput) ->      Print: Xcode is a development tool.

我必须将输入与存储的字符串相关联,如何在不手动将数千个单词与我想要显示的字符串相关联的情况下执行此操作?获得此结果的最佳方法是什么?

谢谢!

我必须一个接一个地做的方法是:

 switch userInput {
     case Xcode: // This is the info provided by the user.
         userInput = Xcode // This is the string stored on the app.
     break
 }

但是,一旦我有数千个字符串,这种方法很糟糕,但有效:

 print ("Print: ", userInput) ->      Print: Xcode is a development tool.

2 个答案:

答案 0 :(得分:0)

您必须为您的信息定义数据模型。如果您有太多数据,我建议创建一个JSON文件,其中每个键都是userInput,并带有相关值。然后,您可以将JSON文件解析为字典,您可以在该字典中轻松检索与密钥相关的值。

此时,您可以定义自己的print方法,该方法仅使用object(forKey:)方法打印与作为参数传递的键关联的值。

答案 1 :(得分:0)

我无法完全理解你的问题。但我所理解的是使用Dictionary数据类型执行此操作。以下是此示例代码。

var str = "Hello, playground"

var responseMessages : [String : String] = ["" : ""]

if responseMessages[str] == nil
{

   responseMessages[str] = str;
}

print(responseMessages[str]) // Output : Optional("Hello, playground")

您最好将字符串值中的optional关键字转换为String数据类型。