Objective c Xcode nsrunning应用程序终止
我有以下代码:Objective c Xcode nsrunning应用程序终止,objective-c,cocoa,terminate,Objective C,Cocoa,Terminate,我有以下代码: NSWorkspace *sharedWorkspace = [NSWorkspace sharedWorkspace]; NSString *appPath = [sharedWorkspace fullPathForApplication:appName]; NSString *identifier = [[NSBundle bundleWithPath:appPath] bundleIdentifier]; NSArray *selectedApps = [NSRu
NSWorkspace *sharedWorkspace = [NSWorkspace sharedWorkspace];
NSString *appPath = [sharedWorkspace fullPathForApplication:appName];
NSString *identifier = [[NSBundle bundleWithPath:appPath] bundleIdentifier];
NSArray *selectedApps =
[NSRunningApplication runningApplicationsWithBundleIdentifier:identifier];
// quit all
[selectedApps makeObjectsPerformSelector:@selector(terminate)];
假设它只关闭从以下名称运行的任何应用程序:appName(NSString)
当我调试应用程序并在指向appName的NSTextField中键入应用程序名称时,它会关闭我的应用程序,而不是我希望它终止的其他应用程序。我在另一个帖子上回答了这个问题,但是没有人回应,所以我想如果我开始一个新帖子,也许我可以得到回应。。。谢谢(这不是重复,只是当我回复bakc时人们没有回应…)
谢谢
Kevin在项目的Info.plist中检查应用程序的捆绑标识,并确保其唯一性 此外,还应确定实际作为参数传递的selectedApps的值。要执行此操作,请记录它:
NSLog(@"selectedApps: %@", selectedApps);
或者(Jon Hess在评论中建议),创建一个断点。您可以通过以下几种方式完成此操作:
- 将光标放在当前行上,然后按Cmd键-\
- (此链接显示已启用的断点)
(gdb)po appPath
// gdb will print this
(gdb)po identifier
// gdb will print this
(gdb)po selectedApps
// gdb will print this
你能把代码部分重新格式化为代码吗?哦,我没意识到那是不可读的。与其使用log语句,不如花点时间来理解如何使用调试器。一种方法是在“[selectedApps makeObjectsPerformSelector:@selector(terminate)]行上放置一个断点,然后在调试器控制台中键入“po selectedApps”。能否提供更多信息?您的包标识符是什么?在终止调用之前,selectedApps的值是多少?好的,我可以从我的信息列表中给你bundle标识符,它是:com.cityconnection.${Helios:rfc1034identifier}我不确定selectedApps。我一开始并没有给它增加任何价值。我在上面的代码中调用变量selectedapps…凯文:使用调试器打印它。事实上,我得到“APP NAME的调试”正常结束“它实际上应该终止另一个正在运行的应用程序。。。