ところで: これは主に iOS 6+ に関するものです:
アプリ内のさまざまな場所から、安全にバックグラウンド化でき、スレッドセーフな機能を実行するアプリがあります。この関数の実行中にシステムを停止したくないので、次のように呼び出す代わりに、[self functionName];
現在、短い間隔で NSTimer を起動しています。
[NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(doThis:) userInfo:@"someString" repeats:NO];
私の質問は次のとおりです。単にタイマーのアイデアが嫌いなので、これについて NSNotification の調査を開始しました...それらはキューに入れられているようで、(私の意見では)どの順序でそれらを実行するかをシステムに決定させません。それら...または-実際に-すべて同時に。あなたは、決して知らない。したがって、NSNotification は次のようになります。
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"doThis" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"a",@"varA",@"b",@"varB",nil]];
では、システムにとってどちらが優れているのでしょうか...リソースに関して、そして実際には、全体的に? NSTimer または NSNotification?
明らかに、NSNotification の優れた点は、appDelegate で一度定義すると、アプリのあらゆる側面から呼び出すことができることです。NSTimerはそれを行うことができますが、必要な「ターゲット」が必要になります...ターゲットを検索するための追加の行など.
提案?