2016-05-05 30 views
13

Ben hızlı bir komut dosyası oluşturmak çalışıyorum ama bu hata ile saplanıp üzerinde örnek elemanının kullanımı: error İşteSwift: tip

./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() 
~~~~~~~~^

benim kodudur:

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

neler Yapmaya çalışıyorum, işleve erişmek ve baskıyı yürütmek.

Herhangi biriniz yanlış yaptığımı biliyor musunuz?

Yardımlarınız için gerçekten minnettar olacağım.

+0

Bir kenara göre, ancak adlandırma kuralları, sınıf adınızı büyük harfle başlatmanız gerektiğini önerir. Böylece 'MyScript' değil, 'MyScript' olarak adlandırdınız. Bu, sınıf ile bu sınıfın bir örneğini (örneğin, bet komutunu = MyScript(); script.thisIsmyFunction() ') ayırt etmeyi kolaylaştırır. – Rob

cevap

33

Yalnızca sınıf örneğinde örnek yöntemini çağırabilirsiniz. Ayrıca seçebilir

let script = myScript() 
script.thisIsmyFunction() 

(resmen Swift bir "tip yöntemi" olarak bilinen) thisIsmyFunction bir sınıf yöntemi yapmak ve: Örneğin, myScript bir örneğini oluşturması gerekecektir, o zaman diyoruz şu anda yapıyoruz yolu gibi diyoruz:

class func thisIsmyFunction() {...} 

Not func önünde class değiştirici. Elbette bu, fonksiyonun içinde self'a erişemeyeceğiniz anlamına gelir, çünkü artık sınıfın bir örneği yoktur.

Daha fazla bilgi için, bkz. Swift documentation on methods.

Bir tarafa: Hızlı sınıflar büyük harflerle başlamalıdır.

+2

Sınıf değiştirici hakkında harika bir ipucu! Çok şeyleri temizledim. – oelna