Возможно ли, чтобы пользователь изменил значение массива в swift? - PullRequest
0 голосов
/ 06 марта 2020

Я хочу иметь массив значений «по умолчанию», уже загруженных в мое приложение iOS, но дать пользователю возможность изменять эти значения в зависимости от их личных предпочтений. Например:

var arrayOfChoices = ["red","blue","green"]

Могу ли я иметь поле, в котором пользователь вводит значение (userEnteredValue) "фиолетовый", а затем задает arrayOfChoice[2] = userEnteredValue, в результате чего

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

Я не Мне нужен конкретный код c о том, как это сделать, сейчас я просто работаю над функциональностью моего приложения, но мне просто интересно, будет ли это возможно, и будет ли новый arrayOfChoices сохраняться в коде приложения для этого пользователя, пока массив не будет изменен снова?

1 Ответ

1 голос
/ 06 марта 2020

Я попытался настроить некоторые образцы, чтобы дать вам представление о том, что вы можете сделать с UserDefaults, сохранив и получив ваш key массив имен цветов, как в этом примере, через shared_pref_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"))")

Что напечатает это:

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...