顺便说一句:这主要是参考 iOS 6+:
我有一个应用程序——从应用程序的许多不同地方——执行一个可以安全地后台运行的功能,并且是线程安全的。我不希望在执行此功能时停止系统,因此不要将其称为:[self functionName];
当前我以较短的间隔触发 NSTimer:
[NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(doThis:) userInfo:@"someString" repeats:NO];
我的问题是:我已经开始为此调查 NSNotification 仅仅是因为我讨厌计时器的想法......他们似乎在排队并且不让系统决定(在我看来)执行它们的顺序。FIFO 与大多数他们……或者——事实上——同时发生。你永远不会知道。因此,NSNotification 出现了:
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"doThis" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"a",@"varA",@"b",@"varB",nil]];
现在,哪个对系统更有利……在资源方面,真的,在所有方面?NSTimer 还是 NSNotification?
显然 NSNotification 的好处是一旦在 appDelegate 中定义——可以从应用程序的任何方面调用。NSTimer 可以做到这一点,但它需要必要的“目标”......查找目标的几行额外的行等。
建议?