如何检查“任何”types的数组,如果它是空的或不?

我使用socket.io来获取数据,现在它返回一个'Any'对象的数组

代码

 socket.on("listeningOnSomething") { data, ack in // data is an array of Any Type } 

我试图做

 socket.on("listeningOnSomething") { data, ack in if (data[0].isEmpty?) { // Keep giving me error that 'Any' object has no isEmpty? object } } 

数据的结果如果

它是空的

 [()] 

如果不是空的

 [( { name: "batman", age: "47" } )] 

您需要将data[0]转换为types为[String: Any]的字典:

 if (data[0] as? [String: Any])?.isEmpty ?? true { ... } 

或者更好(因为使用.first over [0]更安全)

 if let dictionary = data.first as? [String: Any], dictionary.isEmpty { ... }