检查NSURL的UTI /文件类型

sim*_*n.d 8 macos video xcode objective-c

我正在构建一个允许用户将视频放到其上的应用.给定NSURL*的删除列表如何确保每个符合public.movieUTI类型?

如果我有NSOpenPanel,我会使用openPanel.allowedFileTypes = @[@"public.movie"];,Cocoa将为我照顾它.

提前致谢!

Wev*_*vah 17

这应该工作:

NSWorkspace *workspace = [NSWorkspace sharedWorkspace];

for (NSURL *url in urls) {
    NSString *type;
    NSError *error;
    if ([url getResourceValue:&type forKey:NSURLTypeIdentifierKey error:&error]) {
        if ([workspace type:type conformsToType:@"public.movie"]) {
            // the URL points to a movie; do stuff here
        }
    } else {
        // handle error
    }
}
Run Code Online (Sandbox Code Playgroud)

(您也可以使用UTTypeConformsTo()而不是NSWorkspace方法.)