は、なぜあなたはPerformSelectorOnMainThread
を使用していますか?代わりにdispatch_get_main_queue
を使用している可能性があります。
PerformSelectorOnMainThread
はデフォルトモードを使用して、メインスレッド上のレシーバのメソッドを呼び出します。
dispatch_get_main_queue
は、メインスレッドにバインドされているデフォルトのキューを返します。あなたのケースでは
あなたの戻り値を取り戻しますように、あなたは、このようなdispatch_get_main_queue
であなたの関数呼び出しを配置する必要があります。
dispatch_async(dispatch_get_main_queue(), {
let ouptut = self.dateFromSection(YourDate)
// output contains your return value, which is a closure
})
あなたは、コードのいくつかの他の部分に反映取得するコールバックしたい場合は、この閉鎖のローカルインスタンスを作成することができますし、それはこのように戻り値を割り当てることができます。それ以外の場合は、グローバルインスタンスを作成し、他のクラスでどのインスタンスを使用できるかを割り当てることができます。
class YourClass
{
//MARK: Local Variables
var yourDateClosure : (startDate: NSDate, endDate: NSDate)?
func yourFunctionName()
{
dispatch_async(dispatch_get_main_queue(), {
self. yourDateClosure = self.dateFromSection(YourDate)
})
}
}
おかげで、私は疑問に対応するための –