web-dev-qa-db-ja.com

このコンテキストでの型検索では「メソッド」があいまいです。Alamofireのエラー

Swiftのネットワーク処理にAlamofireを使用していますが、1つの奇妙なエラーが発生します。合格できないようです 方法 パラメータとして列挙します。
[メソッドパラメータにエラーがあります]

enter image description here

private func apiRequest(method: Method, url: String, apiData: [String : AnyObject], completion:(finished: Bool, response: AnyObject?) ->Void) {

    Alamofire.request(method, url, parameters: apiData).responseJSON{ response in
        if let JSON = response.result.value {
            completion(finished: true, response: JSON)
        } else {
            completion(finished: false, response:nil)
        }
    }
}
54
Ravi Prakash

オブジェクトタイプを検索するモジュールを指定する必要があります。 Alamofire.Methodを呼び出します

85
harpreetSingh

おそらく名前の衝突があります。解決するには、enumの修飾名(モジュール名を含む)を使用できます。

private func apiRequest(method: Alamofire.Method, ...
13
Sulthan

プロトコルの同じ名前の番号を宣言したため、この問題も発生しました。

protocol SomeProtocol {
   static func someTypeMethod()
}

protocol SomeProtocol {
   init(someParameter: Int)
}

protocol SomeProtocol {
   var mustBeSettable: Int { get set }
   var doesNotNeedToBeSettable: Int { get }
}
8
ylgwhyh

Swift 4およびAlamofire 4.7

HTTPMethodAlamofire.HTTPMethodに置き換えます

1
dimo hamdy

アプリケーションの2つ以上の場所でクラスを宣言できます。エラーは、宣言されたコードにいくつかの異なる場所があるため、このクラスを使用する決定的な方法がないことを言っています。

1
Brooks Hanes

これに対する答えはビルドエラーを修正しましたが、私の場合、警告を表示するファイルは2つの異なるフレームワークにあったため、Xcodeはどこを見ればよいかわかりませんでした。これは、内部フレームワークの意図した動作ではなかったため、不要になったコピーを単に削除しました。

0
nitsyrk

データベーステーブル名とモデルクラス名が同じであるため、このエラーが発生しました...モデルクラス名を変更することで問題を解決しました。

0
bittu

列挙型名を別の&...に変更します.

  • $(inherited)フラグを使用する、または
  • ターゲットからビルド設定を削除します。

ターゲット->建物の設定-> ALWAYS_EMBED_Swift_STANDARD_LIBRARIES、値のタイプはブール値で、もう一方をクリックして、値を$(継承)に変更して実行します-ポッドの更新完了

その後、プロジェクトを実行しようとすると、エラーが消えます! (私は自分のプロジェクトで試しました)

列挙型 'XYZ'ButtonType {

}

0
vimal patel

タイプMethodは、インポートされた2つのモジュールで宣言されています。タイプを使用するモジュールを指定する必要があります。 Methodの代わりにAlamofire.Methodを使用します。

Tip:型を頻繁に使用する場合、モジュール(アプリケーション)で型エイリアスを作成できます。

typealias Method = Alamofire.Method

そうすれば、タイプの前にAlamofire.を付ける必要がなくなります。

0
Marián Černý