Прежде всего, словарь JSON в Swift 3+ никогда не бывает [String:AnyObject]
, это [String:Any]
Ошибка ясна. data["image"]
содержит (Swifty) объект JSON, это упомянутый тип _SwiftValue
.
Чтобы получить словарь product
, используйте dictionaryObject
, который возвращает [String:Any]?
self.productsDetails.append(response["data"]["product"].dictionaryObject!)
И, пожалуйста, не используйте ужасный синтаксис, такой как (data["image"]! as? [String])!
, который
принудительно понижает опциональную опцию до опциональной, а затем принудительно разворачивает ее .
Если предполагается, что это необязательное понижение, оно будет условно (data["image"] as? [String]
) или принудительно понизить его один раз (data["image"] as! [String]
)
Примечание: вам предлагается отказаться от SwiftyJSON в пользу Codable
. Это встроенный и более эффективный.