2016-05-05 10 views
13

上のインスタンスメンバの使用私は迅速なスクリプトを構築しようとしているが、私はこのエラーで捕まってしまった。ここでスウィフト:エラー:タイプ

./1.swift:10:11: error: use of instance member 'thisIsmyFunction' on type 'myScript'; did you mean to use a value of type 'myScript' instead? 
myScript.thisIsmyFunction() 
~~~~~~~~^

は私のコードです:

#!/usr/bin/swift 
import Foundation 
class myScript { 
    func thisIsmyFunction() { 
     print("Do something in there!") 
    } 
} 
myScript.thisIsmyFunction() 

何私はしようとしている機能にアクセスし、印刷を実行しています。

私が間違っていることを知っている人はいますか?

本当にありがとうございます。

+0

名前の慣習として、大文字でクラス名を始めることをお勧めします。だから、 'myScript'ではなく、' MyScript'と呼んでいます。これにより、クラスとそのクラスのインスタンスを区別しやすくなります(たとえば 'let script = MyScript(); script.thisIsmyFunction())。 – Rob

答えて

33

インスタンスメソッドは、クラスのインスタンスに対してのみ呼び出すことができます。たとえば、あなたはそれを呼び出す、myScriptのインスタンスを作成する必要があります:

let script = myScript() 
script.thisIsmyFunction() 

あなたはまた、(正式スウィフトの「型法」として知られている)thisIsmyFunctionクラスメソッドを作るために選択することができ、かつあなたが今やっている方法のようにそれを呼び出す:

class func thisIsmyFunction() {...} 

funcの前でclass修飾子。もちろん、これは、クラスのインスタンスが存在しないため、関数内のselfにアクセスできないことを意味します。

詳細については、Swift documentation on methodsを参照してください。

脇:小文字は大文字で始まる必要があります。

+2

クラス修正に関する素晴らしいヒント!ものごとをクリアしました。 – oelna

関連する問題