2016-05-20 9 views
1

私は(それは[まだ]サブクラスによってアクセスされている特定のstaticの特性が、何のために使用されていない)サブクラスの唯一の目的のために存在するAPIGroupという名前の基本的なクラスを持っているに持っていません。なんだか、次のようになりますスウィフト - タイプにはメンバー

public class APIGroup { 
    public static let someProperty : String = "I am a property!" 
} 

そして、私は次のようにタイプ方法searchを定義し、サブクラス、Trackを、持っている:

public class Track : APIGroup { 
    public static func search(name: String) -> Void { 
     print("Track search initiated. Name: \(name)") 
     print("And the property is: \(someProperty)") 
    } 
} 

これら二つのクラスが同じで別々のファイルに定義されていますモジュール。別のターゲットでは、私はモジュールをインポートし、呼び出すために試してみてください。

import MyModule 

MyModule.Track.search("testing...") 

をしかし、これはスロー:Type 'Track' has no member 'search'。私は間違って何をしていますか?遊び場にこのコードを置く

+0

このメソッドを含むファイルをテスト対象に追加しましたか? (つまり、Xcodeでは、ファイルがターゲットの一部として含まれるようにファイルインスペクタの[Target Membership]の下にあるチェックボックスをオンにする必要があります) – shim

+0

はい、行いました。私は 'MyModule'と' MyModule.Track'にアクセスできます。 – Coder256

+0

クリーンでビルドできますか? – Sulthan

答えて

0

は私のために正常に動作します:

import Foundation 

public class APIGroup { 
    public static let someProperty : String = "I am a property!" 
} 

public class Track : APIGroup { 
    public static func search(name: String) -> Void { 
     print("Track search initiated. Name: \(name)") 
     print("And the property is: \(someProperty)") 
    } 
} 

Track.search("testing...") 

彼らは同じモジュール内にある場合は、モジュール名をインポートまたは使用する必要はありません。

enter image description here

+0

それは私のためにも機能しますが、私が異なるファイル/モジュールについて何を言ったかを見てください。 – Coder256

+0

実際には、ランダムに作業を開始しました。私はすべてを変更するつもりはなかった、私はちょうど数時間後に再コンパイルを試みた。しかし、助けてくれてありがとう! – Coder256

関連する問題