将 [NSFileWrapper initDirectoryWithFileWrappers] 转换为 Swift
Convert [NSFileWrapper initDirectoryWithFileWrappers] to Swift
我有以下 Objective-C 代码:
NSFileWrapper* fileWrapper;
NSMutableDictionary* wrappers = [NSMutableDictionary dictionary];
...
fileWrapper = [[NSFileWrapper alloc]
initDirectoryWithFileWrappers:wrappers];
我试图将上面的代码转换为 Swift:
var fileWrapper : NSFileWrapper?
let wrappers = NSMutableDictionary(dictionary: [:])
....
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)
最后一行无法编译。我收到错误消息
Cannot convert value type of 'NSMutableDictionary' to expected argument type '[String : NSFileWrapper]'
我不确定 [String : NSFileWrapper]
列表的类型是什么?有没有办法将包装器转换成这种类型?
NSFileWrapper
初始化程序已更改为接受 Swift 字典而不是 NSDictionary
:
public class NSFileWrapper : NSObject, NSCoding {
// ....
public init(directoryWithFileWrappers childrenByPreferredName: [String : NSFileWrapper])
// ....
}
[String : NSFileWrapper]
是字典的 Swift 语法,其中 String
是键的类型,NSFileWrapper
是该键的值的类型。
只需使用 Swift 类型:
Swift 3:
FileWrapper(directoryWithFileWrappers: [:])
Swift 2.x:
var fileWrapper : NSFileWrapper?
let wrappers: [String : NSFileWrapper] = [:]
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)
我有以下 Objective-C 代码:
NSFileWrapper* fileWrapper;
NSMutableDictionary* wrappers = [NSMutableDictionary dictionary];
...
fileWrapper = [[NSFileWrapper alloc]
initDirectoryWithFileWrappers:wrappers];
我试图将上面的代码转换为 Swift:
var fileWrapper : NSFileWrapper?
let wrappers = NSMutableDictionary(dictionary: [:])
....
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)
最后一行无法编译。我收到错误消息
Cannot convert value type of 'NSMutableDictionary' to expected argument type '[String : NSFileWrapper]'
我不确定 [String : NSFileWrapper]
列表的类型是什么?有没有办法将包装器转换成这种类型?
NSFileWrapper
初始化程序已更改为接受 Swift 字典而不是 NSDictionary
:
public class NSFileWrapper : NSObject, NSCoding {
// ....
public init(directoryWithFileWrappers childrenByPreferredName: [String : NSFileWrapper])
// ....
}
[String : NSFileWrapper]
是字典的 Swift 语法,其中 String
是键的类型,NSFileWrapper
是该键的值的类型。
只需使用 Swift 类型:
Swift 3:
FileWrapper(directoryWithFileWrappers: [:])
Swift 2.x:
var fileWrapper : NSFileWrapper?
let wrappers: [String : NSFileWrapper] = [:]
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)