这里有一个关于这个代码案例的问题:

let entityTypeDico = ["entityTypeOne": arrayOne, "entityTypeOneTwo": arrayTwo,
                      "entityTypeThree": arrayThree, "entityTypeFour": arrayFour];

for (entityName, arrayItem) in entityTypeDico {
    for x in arrayItem {
      /*do something with x and arrayItem
      I need to use the class of entityName */
      //To get it I tried to use some code like:
      NSClassFromString(entityName) // But it does not work.
    }
}

实体类型一。。。。。EntityType4是CoreData实体的名称,
排列。。。。。arrayFour是某种数组(对这个问题不太重要)。
我需要使用什么确切的代码来获取循环中每个实体的类型?

最佳答案

你的第二个for循环没有意义。你能试试吗?

for (entityName, arrayItem) in entityTypeDico {
    NSClassFromString("YourProjectName.\(entityName)")
}

编辑1
目前我在一个项目中使用NSClassFromString。这就是我在代码中使用它的方式。
在我的主课上我使用:
let carClass = NSClassFromString("MyProjectName.\(self.selectedBrand)\(self.selectedModel)") as! NSObject.Type
_ = carClass.init()

其中selectedBrand和selectedModel由用户选择。
在car类中,我有一个init函数
override init() {
    super.init()

    // My codes here like initializing webview

}

希望有帮助

10-06 02:56