2016-08-15 21 views
4

私はobjective-cからswiftに移行しています。単にクラスのインスタンスを作成して、そのクラスのプロパティにアクセスできるようにしようとしています。引数なしの型の初期化子を呼び出せません - Swift

var myClassInstance = MyClass() 

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

その点で何かが、私はエラーにCannot invoke initializer for type 'MyClass' with no arguments

+0

あなた 'MyClass'は' init'メソッドを持っていますか? – dasblinkenlight

+0

@dasblinkenlight initメソッド 'init(origin:CGPoint){...}'を持っています – ioskaveen

+1

あなたは 'CGPoint'を供給していないので、あなたのエラーです。 'CGPoint'を指定するか、引数を取らない初期化子を書きます。 –

答えて

6

を取得していますあなたは以下のようなクラスを作成することができます。

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)") 
+0

私は 'init(variableOne:CGPoint){self.variableOne = length}'をMyClassに追加しましたが、 'Super.initは初期化子から戻る前にすべてのパスで呼び出されていません。 – ioskaveen

関連する問題