无法将调用结果类型 'Set<String>' 转换为预期类型 'String' 错误
Cannot convert call result type 'Set<String>' to expected type 'String' error
我正在处理旧的 Swift 3 项目,将其更新到 Swift 4.2 后出现此错误。它似乎在 Swift 3 中工作正常。我必须声明 let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
因为 NSURLPboardType 在 Swift 4.2 中不存在,但代码是相同的。
enum SparkleDrag {
static let type = "com.razeware.StickerDrag.AppAction"
static let action = "make sparkles"
}
let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
var nonURLTYpes: Set<String> {return [String(kUTTypeTIFF), SparkleDrag.type]}
var acceptableTypes: Set<String> {return [nonURLTYpes.union(NSURLPboardType)]}
union
中的“u”下划线是错误,但我不太明白问题的本质。任何指导将不胜感激。
问题是 NSURLPboardType
不是 Set<String>
,因此联合无法工作。
如果你想得到这样的东西:
["com.razeware.StickerDrag.AppAction", "public.url", "public.tiff"]
在 aceptableTypes
中,您可以简单地放弃 NSURLPboardType
并执行此操作:
enum SparkleDrag {
static let type = "com.razeware.StickerDrag.AppAction"
static let action = "make sparkles"
}
// let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
var nonURLTYpes: Set<String> {return [String(kUTTypeTIFF), SparkleDrag.type]}
var acceptableTypes: Set<String> {return nonURLTYpes.union([kUTTypeURL as String])}
我正在处理旧的 Swift 3 项目,将其更新到 Swift 4.2 后出现此错误。它似乎在 Swift 3 中工作正常。我必须声明 let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
因为 NSURLPboardType 在 Swift 4.2 中不存在,但代码是相同的。
enum SparkleDrag {
static let type = "com.razeware.StickerDrag.AppAction"
static let action = "make sparkles"
}
let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
var nonURLTYpes: Set<String> {return [String(kUTTypeTIFF), SparkleDrag.type]}
var acceptableTypes: Set<String> {return [nonURLTYpes.union(NSURLPboardType)]}
union
中的“u”下划线是错误,但我不太明白问题的本质。任何指导将不胜感激。
问题是 NSURLPboardType
不是 Set<String>
,因此联合无法工作。
如果你想得到这样的东西:
["com.razeware.StickerDrag.AppAction", "public.url", "public.tiff"]
在 aceptableTypes
中,您可以简单地放弃 NSURLPboardType
并执行此操作:
enum SparkleDrag {
static let type = "com.razeware.StickerDrag.AppAction"
static let action = "make sparkles"
}
// let NSURLPboardType = NSPasteboard.PasteboardType(kUTTypeURL as String)
var nonURLTYpes: Set<String> {return [String(kUTTypeTIFF), SparkleDrag.type]}
var acceptableTypes: Set<String> {return nonURLTYpes.union([kUTTypeURL as String])}