Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何以编程方式获取mac os x上已安装应用程序的列表_Objective C_Macos_.app - Fatal编程技术网

Objective c 如何以编程方式获取mac os x上已安装应用程序的列表

Objective c 如何以编程方式获取mac os x上已安装应用程序的列表,objective-c,macos,.app,Objective C,Macos,.app,如何通过C代码或Objective-C代码以编程方式在mac os x中获取已安装的应用程序?使用spotlight API可以获取所有应用程序文件。具体来说,NSMetadataQuery类 -(void)doAQuery { query = [[NSMetadataQuery alloc] init]; // [query setSearchScopes: @[@"/Applications"]]; // If you want to find applications on

如何通过C代码或Objective-C代码以编程方式在mac os x中获取已安装的应用程序?

使用spotlight API可以获取所有应用程序文件。具体来说,NSMetadataQuery类

-(void)doAQuery {
    query = [[NSMetadataQuery alloc] init];
   // [query setSearchScopes: @[@"/Applications"]];  // If you want to find applications only in /Applications folder

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"kMDItemKind == 'Application'"];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinishGathering:) name:NSMetadataQueryDidFinishGatheringNotification object:nil];
    [query setPredicate:predicate];
    [query startQuery];
}

-(void)queryDidFinishGathering:(NSNotification *)notif {
    int i = 0;
    for(i = 0; i< query.resultCount; i++ ){
        NSLog(@"%@", [[query resultAtIndex:i] valueForAttribute:kMDItemDisplayName]);
    }
}

这是终端中的ls命令。我想获取已安装应用程序的列表你想只在你的应用程序文件夹中获取已安装应用程序的列表吗?或者你的mac中的所有.app文件?是否可以在mac中获取所有.app文件?是的。检查答案。。
mdfind 'kMDItemKind=Application'