Referencia ambigua al miembro 'subíndice' en Diccionario

Estoy tratando de crear un inicializador faible para una class. Mi class se inicializará utilizando la input de una request de networking. Si las networkinges no son confiables, quiero crear un inicializador las comprobaciones de la presencia en todas las properties, y para que no funcione.

Estoy tratando de hacer uso de la guardia aquí, así que por favor siéntanse libres de señalar cualquier error obvio en el enfoque:

public class JobModel { let jobId: String let status: String let toName: String let toAddress: String let description: String let fee: Int let jobDate: NSDate let fromName: String let fromAddress: String init?(job: [String:AnyObject]) throws { guard self.jobId = job["jobid"] as! String else { throw InitializationError.MissingJobId } } } 

La línea guard self.jobId no puede comstackr, con error: Ambiguous reference to member 'subscript'

¿Alguna idea sobre cómo corregir este error?

guard requiere una condición que se ajuste a BooleanType. La asignación simple no lo hace. Necesitarías algo como esto.

 guard let j = job["jobid"] as? String else { throw InitializationError.MissingJobId } self.jobId = j 

Sin embargo, obtendrá el error "todas las properties almacenadas de una instancia de class se deben inicializar antes de lanzar desde un inicializador". Esto se espera y se documenta en el lenguaje de progtwigción Swift:

Sin embargo, para las classs, un inicializador faible puede desencadenar un error de initialization solo después de que todas las properties almacenadas introducidas por esa class se hayan establecido en un valor inicial y se haya llevado a cabo cualquier delegación de inicializador.

Chris Lattner menciona que el comportamiento actual es indeseable aquí: http://swift-language.2336117.n4.nabble.com/Swift-2-throwing-in-initializers-td439.html