0
私の目標は、順番に実行する関数の配列を持つことです。は、クロージャ付きの関数の配列を格納します。
static func GetData(success:(() ->())?, failure:((response : NSURLResponse, error : NSError) ->())?){
//do something asynchronous. make web service call
success?()
//or
failure?(response: urlResponse, error: errorThrown)
}
次に、ビューコントローラでは、上記のような関数を配列に格納しようとしています。私の目標は、この配列を繰り返し処理し、次々に関数を実行することです。これは、各関数が前の関数から返されたデータに依存するためです。私は機能を保存するたびに、私は私のビューコントローラに列挙今
enum MyEnum {
case GetData()
case GetData2()...and so on
//and every other function is put here
}
を作っ
だから、私は配列
funcs.append(MyEnum.GetData(DataAccess.GetData({
//do stuff
}, failure: { (response, error) in
})))
funcs.append(MyEnum.GetData2(DataAccess.GetData2({
//do stuff
}, failure: { (response, error) in
})))
にこれを追加しかし、それが自動的に実行されます。どのような閉鎖もなければ私はそれを行うことができると思うが、私はどのように進行するかを決める必要がある。
これを行うには良い方法がありますか?何か不足していますか?
はクロージャを持つ関数の配列を格納することは自動的に実行
var arrayOfFuncs = [
DataAccess.GetData1({
print("success")
}, failure: { (response, error) in
print("failure")
}),
DataAccess.GetData2({
print("ok")
}, failure: { (response, error) in
print("ee")
})
]
列挙型の作成のポイントは何ですか?関数を配列に入れるだけでもっと簡単になりますか? –
私はこの質問を参照していたhttp://stackoverflow.com/questions/24418951/array-of-functions-in-swift – prawn
関数のシグネチャが異なるため、その質問で列挙が使用されました。あなたが見ることができるように、あなたは同じ署名を持っているので、それらを直接配列に格納することができます。 –