После получения полезной нагрузки JSON
от веб-запроса мне нужно проанализировать данные в переменные в подклассе NSObject
.
Мои переменные объявлены в объекте:
var name:String?
var email:String?
var aboutMe:String?
Затем я начинаю анализировать все возможные данные, которые JSON
может вернуть:
if let name = json["Name"] as? String
{
self.name = name
}
if let email = json["Email"] as? String
{
self.email = email
}
if let aboutMe = json["AboutMe"] as? String
{
self.aboutMe = aboutMe
}
Это становится довольно длинным, так как у нас много данных.
Я был желая закорочить его с помощью Dictionary
, содержащего клавишу JSON
и variable
, например:
let varMap:[String:Any?] = [
"Name": self.name,
"Email": self.email,
"AboutMe": self.aboutMe
]
Затем выполните итерации по ним следующим образом:
for (key, var variable) in varMap
{
if let string = json[key]
{
variable = string
}
}
Проблема здесь в том, что Dictionary
копирует значение из переменной, а не указатель на нее, поэтому установка его на новое значение не влияет на переменные всего объекта.
Есть ли способ добиться того, что я пытаюсь? Если нет, какой другой шаблон был бы лучшим способом сделать это вместо множества if
операторов?