我正在编写一个接收OSC消息的应用程序。但是,由于10.9的App-Nap技术,应用程序在离开前台后停止对这些消息做出反应。 我想为我在10.9上运行的应用程序禁用AppNap,但仍然可以在10.8上运行,所以我尝试了这段代码,但它没有显示任何效果。
if ([[NSProcessInfo processInfo] respondsToSelector:@selector(beginActivityWithOptions:reason:)]) {
[[NSProcessInfo processInfo] beginActivityWithOptions:0x00FFFFFF reason:@"receiving OSC messages"];
}
查看github上的完整代码。
if-condition似乎按预期工作,并在10.9机器上执行。但是,该应用程序被发送到睡眠状态。 (Activity Monitor为我的应用程序显示“App Nap:Yes”。)
感谢您的帮助!
答案 0 :(得分:11)
活动需要存储在属性中。所以我在头文件中添加了这个:
@property (strong) id activity;
然后使用此实现。
if ([[NSProcessInfo processInfo] respondsToSelector:@selector(beginActivityWithOptions:reason:)]) {
self.activity = [[NSProcessInfo processInfo] beginActivityWithOptions:0x00FFFFFF reason:@"receiving OSC messages"];
}
感谢所有贡献者!
答案 1 :(得分:5)