2

Objective-git を Swift で使用していますが、GTRepository.createCommitWithTree メソッドをコンパイルできません。

このメソッドは、オプションで author : GTSignature および committer : GTSignature パラメーターなしで呼び出すことができます。

私は Swift と関数のオーバーロードが初めてです。コンパイルできるようにこれを構造化する方法を知りたいです。

私のコードは、objective-git メソッドで指定されたすべてのタイプを使用します。

func commitTree ( tree : GTTree ) {

    let message : NSString
    let author : GTSignature
    let committer : GTSignature
    let parents : NSArray
    let updatingReferenceNamed : NSString
    var error : NSError?

    GTRepository.createCommitWithTree( tree, message, author, committer, parents, updatingReferenceNamed, &error )
}

このコードでは、コンパイラはこれらの型の引数リストを使用してメソッドを呼び出すことはできません。コンパイラは追加情報を提供します: 「'createCommitWithTree' のオーバーロードは、これらの部分的に一致するパラメーター リストと共に存在します: (GTTree、メッセージ: 文字列、作成者: GTSignature、コミッター: GTSignature、親: [AnyObject]?、updateingReferenceNamed: 文字列?)、(GTTree、メッセージ: 文字列、親: [AnyObject]?、updateingReferenceNamed: 文字列?)"

上記の型を使用するようにリファクタリングすると、コンパイラは「メンバー 'createCommitWithTree' へのあいまいな参照」でコンパイルされません。

これをコンパイルするにはどうすればよいですか?

ありがとう

4

1 に答える 1