我有以下目标-C代码:
NSFileWrapper* fileWrapper;
NSMutableDictionary* wrappers = [NSMutableDictionary dictionary];
...
fileWrapper = [[NSFileWrapper alloc]
initDirectoryWithFileWrappers:wrappers];我试图将上面的代码转换为Swift:
var fileWrapper : NSFileWrapper?
let wrappers = NSMutableDictionary(dictionary: [:])
....
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)不能编译最后一行。我收到错误消息说
无法将“NSMutableDictionary”的值类型转换为预期的参数类型“String:NSFileWrapper”
我不知道[String : NSFileWrapper]的类型是什么,一个列表?是否存在将包装器转换为这种类型的方法?
发布于 2016-04-01 04:04:37
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)https://stackoverflow.com/questions/36347710
复制相似问题