访问swift类

问题描述 投票:0回答:1

有没有办法使用String访问类中的变量?例如。我有以下结构Person.swift

struct Person: Codable {
    let name: String?
    let id: String?
}

我可以使用某种字符串反射方法(如Java)来访问变量name并更改变量,而不是调用Person.name = ""方法吗?

ios swift
1个回答
0
投票

您可以使用KVC将道具作为字符串访问

唯一的缺点是它最初来自Objects c,所以你不能使用结构,你的道具必须是Objective C动态类型:

  class Person: NSObject, Codable {
       @objc dynamic var name: String = ""
   }


   let person = Person.init()
   person.name = "Mat" // Name value "Mat"

   person.setValue("Josh", forKey: "name") // Name value "Josh"
© www.soinside.com 2019 - 2024. All rights reserved.