2016-03-27 17 views
-1

私のwatchKitアプリケーションがバックグラウンドになると、デリゲートメソッドapplicationWillResignActiveが発生します。メソッドのドキュメントによれば、進行中のタスクを一時停止するために使用することができます。メソッドの実行を停止する - Swift

私は、外部の方法を使用することによって、停止または壊れたがっているという進行中の方法があります。それ、どうやったら出来るの?

func method1(){ 
// performing some actions 
} 

func breakMethod1(){ 
// running this method can stop (break) the execution of method1 
} 
+0

「NSNotification」を使ってさまざまなイベントで火をつけてみましたか? – dokun1

+0

@ dokun1この場合、どのようにNSNotificationを実装しますか?私はメソッドを実行する前にそれを試しましたが、それらを止めるのではありませんでした。 –

+0

私はあなたの質問を正しく理解していれば、あなたは 'breakMethod1()'を呼ぶとそれを止めると言うでしょうか?これが当てはまる場合は、それをトリガするためにNSNotificationを使います。そうじゃないの? – dokun1

答えて

0

これは、もちろん、breakMethod1()は間違いmethod1()で発生したアクションをキャンセルするように、アプリが設計されていることを想定しています。

let notificationCenter = NSNotificationCenter.defaultCenter() 
notificationCenter.addObserver(self, selector: "breakMethod1", name: UIApplicationWillResignActiveNotification, object: nil) 

をし、それがそうのようにトリガされます後のクリーンアップのために、あなたも、このオブザーバを削除する必要があります。:

あなたはそのようmethod1()の先頭にNSNotificationのためのオブザーバーを設定する必要があります

notificationCenter.removeObserver(self, name: UIApplicationWillResignActiveNotification, object: nil) 
+0

それはまさに問題です。私は、進行中のメソッドを取り消すような方法でメソッドをどのように構築するのかはよく分かりません。 –

+0

これは大きな問題です。これはアプリのアーキテクチャー上の問題であるため、あなたの質問の言い直し/再質問を検討することをお勧めします。それは、メソッドが起動されたときに達成しようとしているものによって異なります。また、アプリの状態や、アプリがアクティブな状態から退いたときにそのアプリを保持する方法についても検討する必要があります。これはもちろん、あなたの方法が何をしているのかわからないので、暗闇の中での撮影です。 – dokun1

関連する問題