我正在構建一個允許用戶將視頻拖放到其上的應用程序。給定一個丟失的NSURL * s列表,我如何確保每個符合public.movie
UTI類型?檢查NSURL的UTI /文件類型
如果我有一個NSOpenPanel
,我只會使用openPanel.allowedFileTypes = @[@"public.movie"];
和Cocoa會爲我照顧它。
在此先感謝!
我正在構建一個允許用戶將視頻拖放到其上的應用程序。給定一個丟失的NSURL * s列表,我如何確保每個符合public.movie
UTI類型?檢查NSURL的UTI /文件類型
如果我有一個NSOpenPanel
,我只會使用openPanel.allowedFileTypes = @[@"public.movie"];
和Cocoa會爲我照顧它。
在此先感謝!
這應該工作:
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
}
}
(您也可以使用UTTypeConformsTo()
代替NSWorkspace
方法。)
斯威夫特版本:
do {
var value: AnyObject?
try url.getResourceValue(&value, forKey:NSURLTypeIdentifierKey)
if let type = value as? String {
if UTTypeConformsTo(type, kUTTypeMovie) {
...
}
}
}
catch {
}
你如何在iOS上做到這一點? '''NSWorkspace'''需要'''AppKit''',它只能在'''macOS'''上使用。謝謝。 – Supertecnoboff
找到我自己的問題的答案 - 對於iOS:https://stackoverflow.com/a/5815629/1598906 – Supertecnoboff