suzuki sport programaciĆ³n precio lenguaje apple swift

swift - sport - El error "uso ambiguo de ''nombre de propiedad'' ''ha dado una propiedad anulada con el observador didSet



swift apple (3)

Tengo un escenario simple en el que tengo una clase padre, Person, que define una propiedad llamada "nombre" e incluye un observador "didSet" ...

class Person { var name: String? { didSet { println("Person name was set.") } } init() {} }

También tengo una subclase de Persona llamada Empleado que agrega su propio observador "didSet" para la propiedad "nombre" para que pueda monitorear los cambios a esa propiedad ...

class Employee: Person { override var name: String? { didSet { println("Employee name was set.") } } }

Cuando trato de ejercer el código obtengo un error de compilación, pero no puedo averiguar por qué o cómo solucionarlo. Aquí está el código que ejerce estas clases ...

var person = Person() person.name = "Bob" var employee = Employee() employee.name = "Sally" // results in "Ambiguous use of ''name''" compile error



Pude evitar esto en mi caso al enviar a la clase base:

(employee as Person).name = "Sally"

Esto todavía parece hacer el envío adecuado a la subclase. Por ejemplo:

class Person { var name: String { return "person" } } class Employee: Person { override var name: String { return "employee" } } let bob = Person() let alice = Employee() println((alice as Person).name) // prints "employee"


Recibí este error porque tenía dos propiedades declaradas con el mismo nombre.

En Objective-C, el compilador solía dar el error en la línea en que se declaró la propiedad. Algo como "propiedad duplicada".

Ahora en Swift obtiene "Uso ambiguo de ..." en la línea que usa para propiedad ... y tiene que buscar en todas partes para encontrar la propiedad duplicada.