Ios I';m无法在Swift 3中枚举NSA指定的文本

Ios I';m无法在Swift 3中枚举NSA指定的文本,ios,swift,nsattributedstring,enumerate,Ios,Swift,Nsattributedstring,Enumerate,我无法在swift 3中正确编译此文件。我遇到了一个问题 这里是实际代码。我不知道为什么它会在代码中要求额外的 data2 = items.data(using: .utf8) attrString = NSAttributedString(htmlData:data2!,options:[DTDefaultFontSize:13.0,DTDefaultFontFamily:"Verdana",DTDefaultFirstLineHeadIndent:5.0],doc

我无法在swift 3中正确编译此文件。我遇到了一个问题

这里是实际代码。我不知道为什么它会在代码中要求额外的

 data2 = items.data(using: .utf8)
            attrString = NSAttributedString(htmlData:data2!,options:[DTDefaultFontSize:13.0,DTDefaultFontFamily:"Verdana",DTDefaultFirstLineHeadIndent:5.0],documentAttributes:nil)
            print(attrString)

            attrString?.enumerateAttribute(NSAttachmentAttributeName , in: NSMakeRange(0, (attrString?.length)!), options: 0, using:^(id value,NSRange range,BOOL *test){
                if(value){
                    print(value)
                }
                })

您必须复制了
Objective-C
示例,但未将其完全转换为
swift
。像块语法和if(value)这样的东西是有效的
Objective-C
,但不是有效的
swift
。以下代码在
Swift游乐场中正常工作

let attrString = NSAttributedString(string: "test", attributes: [NSForegroundColorAttributeName : UIColor.red, NSUnderlineColorAttributeName : UIColor.green])
attrString.enumerateAttribute(NSForegroundColorAttributeName , in: NSMakeRange(0, attrString.length), options: [.longestEffectiveRangeNotRequired]) { value, range, isStop in
    if let value = value {
        print(value)
    }
}

非常令人沮丧的是,xCode中的autocomplete无法显示这一点。我只想补充一下,对于较长的文本视图,这是非常缓慢的。在现代iPhone XR上运行此功能最多需要7秒钟,该功能的文本视图包含3598个单词,并且没有过多的格式设置。