如何在swift中获取数组的元素类型

如何在swift中获取数组的元素类型,swift,xcode,swift3,runtime,dynamic-binding,Swift,Xcode,Swift3,Runtime,Dynamic Binding,首先有一个基类叫做BaseModel,下面是代码: class BaseModel : NSObject { var code:Int? var message:Any? public func setDictionaryToAttributes(dictionary_is dictionary:Dictionary<String,Any>?)->Bool { guard let dic:Dictionary

首先有一个基类叫做BaseModel,下面是代码:

class BaseModel : NSObject
{
    var code:Int?        
    var message:Any?  

    public func setDictionaryToAttributes(dictionary_is dictionary:Dictionary<String,Any>?)->Bool
    {
        guard let dic:Dictionary<String,Any> = dictionary else {return false}

        for (key,value) in dic {
            let someType = type(of: value)
            debugPrint("\(String(describing: someType.self))")
            debugPrint("\(String(describing: someType))")
            if someType is Array<Any>.Type { //i can't get TestListItemModel string               
                debugPrint("\(String(describing: someType))")
            }
        }

        self.setValuesForKeys(dic)
        return true;
    }
}//class BaseModel end
问题是: 我想从json数据自动解析BaseModel类中的所有属性值。
在func analysetDictionaryToAttributes中:我可以找到哪一个是数组,但我不知道如何获取此类型并继续调用它的analysetDictionaryToAttributes func。

为什么希望在
BaseModel
类函数中获取
TestListItemModel
。首先,我看不到任何结构具有
TestListItemModel
。因为我可以看到您正在传递json dictionary对象,它不知道此行中的类“TestListItemModel”

self.setDictionaryToAttributes(dictionary_is: dic)
那么为什么您希望父类知道它的子类是
testlistitemodel
TestListModel

所以在这个函数中

public func setDictionary属性(dictionary\u是dictionary:dictionary?->Bool

您将始终获得字符串字典作为键,值作为任何类型。如果您需要字符串,那么您可以通过这种方式进行检查

if value = value as String
{
   print(value)
}

将字符串声明为任意对象。好的,我将对任意对象执行此操作,但我仍然无法获取xxxTypearray@KKRocks衷心感谢您的回答,我在网上搜索了很长时间。但是没有用。请帮助或尝试给出一些如何实现这一点的想法。感谢您的回答,字典中有多个密钥和值对,如下所示:(“代码”:“1”)(“消息”:“xxx”)(“tatalink”:“xxx”)(“条目”:“[xxx,xxx,xxx]”)我希望只有一个函数可以解析baseModel中的所有属性,但baseModel永远不会知道是否还有其他子模型。。如果你想在childModels中解析它。。你可以用一般的方式解析它,比如[String:Any]…是的,我的困难是在BaseModel中总是告诉我类型是数组,但我一直认为我们可以在运行时知道它,链接动态绑定原理。你可以使用像mutableContainers这样的选项序列化json。。它将解析出它的容器结构..最好的方法是什么?
self.setDictionaryToAttributes(dictionary_is: dic)
if value = value as String
{
   print(value)
}