> On Sep 14, 2016, at 9:43 AM, Félix Cloutier via swift-users 
> <swift-users@swift.org> wrote:
> 
> I'm trying to create a NSAttributedString from its HTML representation in 
> Swift 3 (from the Xcode 8 GM build). However, this doesn't work:
> 
>> import Foundation
>> import AppKit
>> 
>> let html = "<i>hello world</i>"
>> let data = html.data(using: .utf8, allowLossyConversion: true)!
>> let attributed = NSAttributedString(HTML: data, documentAttributes: nil)
> 
> The error that I get in the REPL (which is essentially identical to the one I 
> get in an Xcode project) is:
> 
>> error: ambiguous use of 'init(HTML:documentAttributes:)'
>> let str = NSAttributedString(HTML: data!, documentAttributes: nil)
>>           ^
>> 
>> found this candidate
>> found this candidate
> 
> How should I do it? And perhaps more importantly, what's being done to allow 
> me to figure it out myself?

I go to a more complex call until the issue goes away. Then file a bug. For me, 
adding options in fixed the issue. 

let attributed = NSAttributedString(html: data, options: [:], 
documentAttributes: nil)

Swift seems to struggle with these because without "options", the API could 
match either one.

    public init?(html data: Data, documentAttributes dict: 
AutoreleasingUnsafeMutablePointer<NSDictionary?>?)

    public init?(html data: Data, options: [AnyHashable : Any] = [:], 
documentAttributes dict: AutoreleasingUnsafeMutablePointer<NSDictionary?>?)

-- E

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to