No se puede asignar un valor del tipo 'MDLMaterialProperty ?!' a un valor del tipo 'Int'

He actualizado mi proyecto Xcode 6.4 en Xcode 7 y tiene este problema …

class func preparationForSave(text_country: NSDictionary){ let dataArray = text_country["countries"] as! NSArray; for item in dataArray { var it: Int = 0 if (item["parentId"] == NSNull()){ it = 0 }else{ it = item["parentId"] } Country.saveCountry(item["id"] as! Int, title: item["title"] as! String, parentId: it) } } 

Tiene un error aquí: item["id"] as! Int item["id"] as! Int y dice: No se puede asignar un valor del tipo 'MDLMaterialProperty ?!' a un valor del tipo 'Int'

Estaba funcionando en Xcode 6.4 …

Es un error extraño en XCode 7 que causa error sobre "MDLMaterialProperty ?!" para que aparezca cuando los types no coinciden o las variables no se desenvolvieron.

Prueba este código (fijo en 2 líneas):

 class A { class func preparationForSave(text_country: NSDictionary){ let dataArray = text_country["countries"] as! NSArray; for item in dataArray { var it: Int = 0 if (item["parentId"] == nil) { // item["parentId"] is of type X? - compare it with nil it = 0 }else{ it = item["parentId"] as! Int // note that we're force converting to Int (might cause runtime error), better use: if it = item["parentId"] as? Int { ....} else { .. handle error .. } } Country.saveCountry(item["id"] as! Int, title: item["title"] as! String, parentId: it) } } }