macos – setResourceValue NSURLTagNamesKey错误

前端之家收集整理的这篇文章主要介绍了macos – setResourceValue NSURLTagNamesKey错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试使用setResourceValue将标记颜色Blue设置为文件时出错:
var error: NSError?
let listofTags = NSWorkspace.sharedWorkspace().fileLabels
let theURL:NSURL = NSURL.fileURLWithPath("/Volumes/234567_fr.tif")!

var Tag: AnyObject = NSWorkspace.sharedWorkspace().fileLabels[4] // Tag = "Blue"

theURL.setResourceValue(Tag,forKey: NSURLTagNamesKey,error: &error)
println(error) // Error Domain=NSOSStatusErrorDomain Code=-8050 "The operation couldn’t be completed. (OSStatus error -8050.)

任何的想法?谢谢您的帮助

解:

1 – setResourceValue的第一个参数必须是NSArray

2 – 令人震惊,但……颜色名称必须是本地化的!

此示例修复了您的错误8050,但如果您的系统语言不是英语,则实际上不会设置颜色标记

var error: NSError?
let theURL:NSURL = NSURL(fileURLWithPath: "/Users/me/tests/z.png")!
let tag: AnyObject = NSWorkspace.sharedWorkspace().fileLabels[4] // "Blue" tag
let arr = NSArray(object: tag)
theURL.setResourceValue(arr,error: &error)

在我的系统(法语)上,这不会设置实际的蓝色标签标签,只会设置包含单词“Blue”的文本标签.

要设置正确的颜色标记,您必须按字面意思提供本地化颜色名称

var error: NSError?
let theURL:NSURL = NSURL(fileURLWithPath: "/Users/me/tests/z.png")!
let arr = NSArray(object: "Bleu") // "Blue" translated to French
theURL.setResourceValue(arr,error: &error)

猜你在找的Swift相关文章