2016-09-19 3 views
1

のための拡張機能を使用したい私は、機能をdefinied:スウィフト:既存の機能

func inSubfolder_(file : String, root : String) -> Bool { ... } 

私も拡張として文字列に追加します。この:

extension String { 
    func inSubfolder(root : String) -> Bool { 
     return inSubfolder_(file : self, root : root) 
    } 
} 

私は同じ名前を(使用したいです"_"なし)、しかしグローバルなものは "グローバル"として宣言する必要があります。そのため、エクステンションは自分自身にアクセスしようとしません(再帰的に)。 私は何を欠席しましたか?

+0

これらのパラメータは同じである必要があります。 –

+1

パラメータが異なるため、同じ名前を使用できるはずです。 – rob180

+0

それも私の問題です! :-)それはすべきだと思うけど、そうはしない。私はエラー "余分な引数 'ファイル'を呼び出して"取得します。それは自分自身にアクセスしようとします! –

答えて

0

呼び出しをモジュール名で名前を付けることによって、グローバルスコープ内の関数を明示的に呼び出すことができます。ほとんどの場合、これがアプリのターゲット名になります。これがプレイグラウンドのコンテキストにある場合は、モジュール名の代わりにPlaygroundを使用します。

func inSubfolder(file : String, root : String) -> Bool { ... } 

extension String { 
    func inSubfolder(root : String) -> Bool { 
     return AppTargetName.inSubfolder(file : self, root : root) 
    } 
} 
関連する問題