Me estoy moviendo de objective-c, swift y todo lo que estoy tratando de hacer es simplemente crear una instancia de la clase para que yo pueda acceder a una propiedad en dicha clase.

var myClassInstance = MyClass()

print("length is \(myClassInstance.variableOne)")

algo al respecto, pero estoy recibiendo un error Cannot invoke initializer for type 'MyClass' with no arguments

¿Su MyClass tener un init método?
tiene un método init init(origin: CGPoint) { ... }
No está suministrando con un CGPoint, de ahí su error. Suministro de un CGPoint, o escribir un inicializador que no lleva argumentos.
Entonces usted tiene que llamar a MyClass(origin:...) y pasar un CGPoint para el constructor.

OriginalEl autor ioskaveen | 2016-08-15

1 Comentario

  1. 8

    Puede crear de la clase como la siguiente:

    class MyClass{
    var variableOne:CGPoint
    
        init(variableOne: CGPoint) {
            self.variableOne = variableOne
        }
    
        convenience init () {
            self.init(variableOne: CGPoint(x: 0, y: 0))
        }
    }
    
    
    var myClassInstance = MyClass()
    print("Default length is \(myClassInstance.variableOne)")
    
    var myClassInstance2 = MyClass(variableOne: CGPoint(x: 10, y: 10))
    print("length is \(myClassInstance2.variableOne)")
    He añadido init(variableOne: CGPoint) { self.variableOne = length } a Miclase pero ahora conseguir un nuevo error diciendo Super.init isn't called on all paths before returning from initializer
    ¿Cómo resolver este problema ?

    OriginalEl autor Khundragpan

Dejar respuesta

Please enter your comment!
Please enter your name here