Swift-3 error: '-[_SwiftValue unsignedIntegerValue]: unrecognized selector

前端 未结 3 1186
时光取名叫无心
时光取名叫无心 2020-12-13 23:26

Following code was perfectly worked with old swift. This is an extension of String

func stringByConvertingHTML() -> String {
    let newString = replacing         


        
相关标签:
3条回答
  • 2020-12-13 23:49

    In Swift3 no cast to AnyObject is needed anymore and also no NSNumber.

    let attrs: [String: Any] = [
                NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
                NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue
            ]
    
    0 讨论(0)
  • 2020-12-13 23:52

    This post saved my day. After migrating to Swift 3, the little change String.Encoding.utf8 to String.Encoding.utf8.rawValue fixed the trap reported here.

    Orignal line:

    ...
        options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
                  NSCharacterEncodingDocumentAttribute: String.Encoding.utf8],
    ...
    

    changed to

    options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
              NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue],
    

    add the .rawValue to the end...

    0 讨论(0)
  • 2020-12-14 00:04

    I ran into the same problem:

    let attributedOptions : [String: AnyObject] = [
                NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType as AnyObject,
                NSCharacterEncodingDocumentAttribute: String.Encoding.utf8 as AnyObject
            ]
    

    Here the String.Encoding.utf8 the type check fails. Use NSNumber(value: String.Encoding.utf8.rawValue)

    0 讨论(0)
提交回复
热议问题