0
http取得要求のプロトコルを作成し、それをビューコントローラで使用しようとしています。この考え方は、各VCで書き込み要求を防止し、アプリで一度書き込むことです。私はget関数を使ってプロトコルを書いて、Alamofireを使ってget要求を実装するための拡張を書きました。すべてのアプリケーションで一度だけリクエストを取得する -
protocol Irequest
{
func getRequest(url: String, completion: (JSON) ->())
func postRequest(url: String, param: Parameters, completion: (JSON) ->())
}
extension Irequest
{
func getRequest(url: String, completion:@escaping (JSON) ->())
{
Alamofire.request(url.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)!, method: .post)
.responseJSON { response in
debugPrint(response)
if let Json = response.result.value
{
let j = JSON(Json)
completion(j)
}
else
{
completion(JSON("{}"))
}
}
}
}
私がクラスで使用したい場合、クラスXはプロトコルのIrequestに準拠していないと言います。どうすれば使えますか?より一般的な言葉では、どのように私は1つのすべてのアプリケーションで要求機能を得ることができますか?
class X : UIViewController , Irequest
実際には、この機能をグローバルスコープに入れることはできますか? – Sweeper
エラー*は、 'postRequest'が実装されていないために発生します。私は 'UIViewController'の拡張がプロトコルより適していると思います。 – vadian
@vadianあなたは正しいです。私はプロトコルのpostRequestにコメントしましたが、まだプロトコルに準拠していないと言います –