Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以让用户在swift中更改数组值?_Ios_Arrays_Swift - Fatal编程技术网

Ios 是否可以让用户在swift中更改数组值?

Ios 是否可以让用户在swift中更改数组值?,ios,arrays,swift,Ios,Arrays,Swift,我想在我的iOS应用程序中加载一组“默认”值,但允许用户根据个人喜好更改这些值。例如: var arrayOfChoices = ["red","blue","green"] 我可以在一个字段中输入一个值(userEnteredValue)“purple”,然后设置arrayOfChoice[2]=userEnteredValue,结果是 arrayOfChoices = ["red", "blue", "purple"] 我不需要关于如何做到这一点的具体代码,我只是在开发我的应用程序的功能

我想在我的iOS应用程序中加载一组“默认”值,但允许用户根据个人喜好更改这些值。例如:

var arrayOfChoices = ["red","blue","green"]
我可以在一个字段中输入一个值(userEnteredValue)“purple”,然后设置
arrayOfChoice[2]=userEnteredValue
,结果是

arrayOfChoices = ["red", "blue", "purple"]

我不需要关于如何做到这一点的具体代码,我只是在开发我的应用程序的功能,但我只是想知道这是否可行,以及新的arrayOfChoices是否会存储在该用户的应用程序代码中,直到再次更改阵列?

我尝试设置一些示例,通过存储和检索颜色名称数组的
键来概述如何使用
UserDefaults
在本例中,通过
shared\u pref\u colors
键名。您可以给这把钥匙取任何您喜欢的名字,只要保持一致:

var colors = ["red", "blue", "green"]
UserDefaults.standard.set(colors, forKey: "shared_pref_colors")
print("Stored initial: \(UserDefaults.standard.array(forKey: "shared_pref_colors"))")

colors[2] = "purple"
UserDefaults.standard.set(colors, forKey: "shared_pref_colors")
print("Retrieved after storing purple: \(UserDefaults.standard.array(forKey: "shared_pref_colors"))")

var colorsRetrieved = UserDefaults.standard.array(forKey: "shared_pref_colors") as! [String]
print("Retrieved before manipulation: \(colorsRetrieved)")

colorsRetrieved[0] = "yellow"
UserDefaults.standard.set(colorsRetrieved, forKey: "shared_pref_colors")
print("Retrieved after storing yellow \(UserDefaults.standard.array(forKey: "shared_pref_colors"))")
将打印出以下内容:


只需将其从“let”更改为“var”。一种方法是在应用程序第一次运行时将默认值([“红色”、“蓝色”、“绿色”)保存为
UserDefaults
。之后,在启动时从
UserDefaults
加载
arrayOfChoices
。当用户指示一组不同的选项时,更新
UserDefaults
和reload.IOW,您不能在运行时更改应用程序的代码,但可以为其提供新数据。
Stored initial: Optional([red, blue, green])
Retrieved after storing purple: Optional([red, blue, purple])
Retrieved before manipulation: ["red", "blue", "purple"]
Retrieved after storing yellow Optional([yellow, blue, purple])