首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将[NSFileWrapper initDirectoryWithFileWrappers]转换为Swift

将[NSFileWrapper initDirectoryWithFileWrappers]转换为Swift
EN

Stack Overflow用户
提问于 2016-04-01 03:50:13
回答 1查看 630关注 0票数 2

我有以下目标-C代码:

代码语言:javascript
复制
NSFileWrapper* fileWrapper;
NSMutableDictionary* wrappers = [NSMutableDictionary dictionary];
...
fileWrapper = [[NSFileWrapper alloc]
                   initDirectoryWithFileWrappers:wrappers];

我试图将上面的代码转换为Swift:

代码语言:javascript
复制
var fileWrapper : NSFileWrapper?
let wrappers = NSMutableDictionary(dictionary: [:])
....
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)

不能编译最后一行。我收到错误消息说

无法将“NSMutableDictionary”的值类型转换为预期的参数类型“String:NSFileWrapper”

我不知道[String : NSFileWrapper]的类型是什么,一个列表?是否存在将包装器转换为这种类型的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 04:04:37

NSFileWrapper初始化器已更改为接受Swift字典,而不是NSDictionary

代码语言:javascript
复制
public class NSFileWrapper : NSObject, NSCoding {

    // ....

    public init(directoryWithFileWrappers childrenByPreferredName: [String : NSFileWrapper])

    // ....
}

[String : NSFileWrapper]是字典的Swift语法,其中String是键的类型,NSFileWrapper是该键的值类型。

只需使用Swift类型:

Swift 3:

代码语言:javascript
复制
FileWrapper(directoryWithFileWrappers: [:])

Swift 2.x:

代码语言:javascript
复制
var fileWrapper : NSFileWrapper?
let wrappers: [String : NSFileWrapper] = [:]
fileWrapper = NSFileWrapper(directoryWithFileWrappers: wrappers)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36347710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档