gpt4 book ai didi

objective-c - NSWorkspace共享工作空间运行应用程序导致内存泄漏;另一种选择?

转载 作者:行者123 更新时间:2023-12-03 17:01:55 25 4
gpt4 key购买 nike

我想知道是否有人对使用 runningApplications 的替代方案有建议,因为类似以下内容似乎正在泄漏内存:

https://openradar.appspot.com/24067155 https://github.com/bradjasper/NSRunningApplicationMemoryLeaks

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(checkApps:) userInfo:nil repeats:YES];

}

- (void) checkApps : (id) sender {

@autoreleasepool {

NSArray *appsArray = [[NSWorkspace sharedWorkspace] runningApplications];

for (NSRunningApplication *a in appsArray) {
NSLog(@"%@", [a localizedName]);
}

}

}

等待苹果提供解决方案是唯一的选择吗?我在沙盒环境中工作,因此某些基于 NSTask 的替代方案可能无法工作。预先感谢您的任何想法。

最佳答案

您的问题的答案是:还有其他沙盒选项吗?:没有。这就是您应该寻找正在运行的应用程序的方式。

您可以尝试使用 KVO(在共享工作空间的 runningApplications 属性上)。该文档建议这样做,而不是你正在做的事情:

Instead of polling, use key-value observing to be notified of changes to this array property.

关于objective-c - NSWorkspace共享工作空间运行应用程序导致内存泄漏;另一种选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34970273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com