Swift3 - 二元运算符“==”不能应用于 'AnyObject?' 和 'FileAttributeType' 类型的操作数
Swift3 - Binary operator '==' cannot be applied to operands of type 'AnyObject?' and 'FileAttributeType'
我正在尝试检查 FileAttributeType。
这是我比较的逻辑:-
let attributes = try fileManager.attributesOfItem(atPath: "/Users/AUSER/Desktop/Downloads")
print(attributes)
if (attributes[FileAttributeKey.type] as AnyObject? == FileAttributeType.typeSymbolicLink ){
print("YESSS \(attributes[FileAttributeKey.type])")
}
错误->
二元运算符“==”不能应用于 'AnyObject?' 和 'FileAttributeType'
类型的操作数
(大)错误是你投了一个非常具体的类型
static let type: FileAttributeKey
The corresponding value is an String object
非常不明确的类型 AnyObject
。 AnyObject
无法比较
将类型转换为 String
并与 FileAttributeType
的原始值进行比较
if attributes[FileAttributeKey.type] as? String == FileAttributeType.typeSymbolicLink.rawValue {
旁注:强烈建议始终使用 URL 而不是字符串路径,并直接从 URL
获取文件属性
let url = URL(fileURLWithPath: "/Users/AUSER/Desktop/Downloads")
if let resourceValues = try? url.resourceValues(forKeys: [.fileResourceTypeKey]),
resourceValues.fileResourceType! == .symbolicLink {
print("YESSS \(resourceValues.fileResourceType!.rawValue)")
}
我正在尝试检查 FileAttributeType。 这是我比较的逻辑:-
let attributes = try fileManager.attributesOfItem(atPath: "/Users/AUSER/Desktop/Downloads")
print(attributes)
if (attributes[FileAttributeKey.type] as AnyObject? == FileAttributeType.typeSymbolicLink ){
print("YESSS \(attributes[FileAttributeKey.type])")
}
错误-> 二元运算符“==”不能应用于 'AnyObject?' 和 'FileAttributeType'
类型的操作数(大)错误是你投了一个非常具体的类型
static let type: FileAttributeKey
The corresponding value is an String object
非常不明确的类型 AnyObject
。 AnyObject
无法比较
将类型转换为 String
并与 FileAttributeType
if attributes[FileAttributeKey.type] as? String == FileAttributeType.typeSymbolicLink.rawValue {
旁注:强烈建议始终使用 URL 而不是字符串路径,并直接从 URL
let url = URL(fileURLWithPath: "/Users/AUSER/Desktop/Downloads")
if let resourceValues = try? url.resourceValues(forKeys: [.fileResourceTypeKey]),
resourceValues.fileResourceType! == .symbolicLink {
print("YESSS \(resourceValues.fileResourceType!.rawValue)")
}