Check NSURL for UTI / file type
我正在构建一个允许用户将视频拖放到其上的应用程序。给定一个已删除 NSURL*s 的列表,我如何确保每个都符合 public.movie UTI 类型?
如果我有一个 NSOpenPanel,我会使用 openPanel.allowedFileTypes = @[@”public.movie”];,而 Cocoa 会为我处理它。
提前致谢!
这应该可以工作:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 |
NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
for (NSURL *url in urls) { |
(您也可以使用 UTTypeConformsTo() 代替 NSWorkspace 方法。)
- 你如何在 iOS 上做到这一点? NSWorkspace 需要 AppKit,它仅在 macOS 上可用。谢谢。
- 找到了我自己的问题的答案 – 对于 iOS:stackoverflow.com/a/5815629/1598906
Swift 版本:
|
1
2 3 4 5 6 7 8 9 10 11 |
do {
var value: AnyObject? try url.getResourceValue(&value, forKey:NSURLTypeIdentifierKey) if let type = value as? String { if UTTypeConformsTo(type, kUTTypeMovie) { … } } } catch { } |
Swift 5 版本:
|
1
2 3 4 5 6 7 |
if let resourceValues = try? localUrl.resourceValues(forKeys: [URLResourceKey.typeIdentifierKey]) {
if let typeId = resourceValues.typeIdentifier { if UTTypeConformsTo(type, kUTTypeMovie) { … } } } |
来源:https://www.codenong.com/12503376/
