Zum einen bekommen wird werden eine Basisklasse namens Basemodel, ist unter dem Code:wie Elementtyp für Array in schnellen
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
und es gibt eine weitere Klasse von Basemodel geerbt
class TestListModel: BaseModel {
var tatalink:Any?
var items:Array<TestListItemModel>?
func setValuesFrom(jsonData j:JSON) { //j is a swifyJson object
guard var dic = j.dictionaryObject else {return}
if self.setDictionaryToAttributes(dictionary_is: dic)==false {
return
}
}
}
gibt es eine Klasse TestListItemModel für submodel in TestListModel
Frage ist: Ich möchte alle Attributwerte in der BaseModel-Klasse von JSON-Daten automatisch analysieren. in func analysetDictionaryToAttributes: Ich kann herausfinden, welches Array ist, aber ich weiß nicht, wie man diesen Typ bekommt und weiterhin seine analysetDictionaryToAttributes func nennen.
deklarieren Sie Ihre Strings als Any-Objekt. – KKRocks
OK, ich werde es für jedes Objekt tun, aber ich kann immer noch nicht xxxType im Array –
xuanwenchao
@KKRocks Vielen Dank für Ihre Antwort aufrichtig, ich bin auf der Suche nach einer langen Zeit im Netz. Aber keine Verwendung. Bitte helfen oder versuchen Sie, einige Ideen zu geben, wie dies zu erreichen ist. – xuanwenchao